diff --git a/cache/solidity-files-cache.json b/cache/solidity-files-cache.json index 572f5e7..9ee3729 100644 --- a/cache/solidity-files-cache.json +++ b/cache/solidity-files-cache.json @@ -720,9 +720,102 @@ } } }, + "src/TaxToken.sol": { + "lastModificationDate": 1677232597652, + "contentHash": "d61a72f0a379ddf2bde556aab1faffef", + "sourceName": "src/TaxToken.sol", + "solcConfig": { + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs", + "appendCBOR": true + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ] + } + }, + "evmVersion": "london", + "libraries": {} + } + }, + "imports": [ + "src/extensions/Context.sol", + "src/extensions/Ownable.sol", + "src/interfaces/ERC20.sol", + "src/interfaces/IERC20.sol", + "src/interfaces/IUniswapV2Factory.sol", + "src/interfaces/IUniswapV2Router.sol", + "src/interfaces/InterfacesAggregated.sol" + ], + "versionRequirement": "^0.8.6", + "artifacts": { + "TaxToken": { + "0.8.17+commit.8df45f5f.Linux.gcc": "TaxToken.sol/TaxToken.json" + } + } + }, + "src/Treasury.sol": { + "lastModificationDate": 1677232597653, + "contentHash": "f32dfc694e686022fc67762d0176a6db", + "sourceName": "src/Treasury.sol", + "solcConfig": { + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs", + "appendCBOR": true + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ] + } + }, + "evmVersion": "london", + "libraries": {} + } + }, + "imports": [ + "src/extensions/Context.sol", + "src/extensions/Ownable.sol", + "src/interfaces/IERC20.sol", + "src/interfaces/IUniswapV2Router.sol" + ], + "versionRequirement": "^0.8.6", + "artifacts": { + "Treasury": { + "0.8.17+commit.8df45f5f.Linux.gcc": "Treasury.sol/Treasury.json" + } + } + }, "src/Vesting.sol": { - "lastModificationDate": 1675983986777, - "contentHash": "d721f44d5890e1e004a04df7a2132f77", + "lastModificationDate": 1677232597654, + "contentHash": "be5a0dde7e87c1d413822ccf2ea857d1", "sourceName": "src/Vesting.sol", "solcConfig": { "settings": { @@ -755,7 +848,7 @@ "imports": [ "src/extensions/Context.sol", "src/extensions/Ownable.sol", - "src/interfaces/Interfaces.sol" + "src/interfaces/IERC20.sol" ], "versionRequirement": "^0.8.13", "artifacts": { @@ -846,10 +939,10 @@ } } }, - "src/interfaces/Interfaces.sol": { - "lastModificationDate": 1673910167557, - "contentHash": "41a7ba920bd7f684d7d78ca2f4a4478e", - "sourceName": "src/interfaces/Interfaces.sol", + "src/interfaces/ERC20.sol": { + "lastModificationDate": 1677232597657, + "contentHash": "93546a19bfd21d265d795fda9435974e", + "sourceName": "src/interfaces/ERC20.sol", "solcConfig": { "settings": { "optimizer": { @@ -878,47 +971,275 @@ "libraries": {} } }, - "imports": [], + "imports": [ + "src/extensions/Context.sol", + "src/interfaces/IERC20.sol" + ], "versionRequirement": "^0.8.6", "artifacts": { - "AggregatorInterface": { - "0.8.17+commit.8df45f5f.Linux.gcc": "Interfaces.sol/AggregatorInterface.json" - }, - "IDAO": { - "0.8.17+commit.8df45f5f.Linux.gcc": "Interfaces.sol/IDAO.json" - }, - "IDividendPayingToken": { - "0.8.17+commit.8df45f5f.Linux.gcc": "Interfaces.sol/IDividendPayingToken.json" - }, - "IDividendPayingTokenOptional": { - "0.8.17+commit.8df45f5f.Linux.gcc": "Interfaces.sol/IDividendPayingTokenOptional.json" + "ERC20": { + "0.8.17+commit.8df45f5f.Linux.gcc": "ERC20.sol/ERC20.json" }, + "SafeMath": { + "0.8.17+commit.8df45f5f.Linux.gcc": "ERC20.sol/SafeMath.json" + } + } + }, + "src/interfaces/IERC20.sol": { + "lastModificationDate": 1677232597657, + "contentHash": "0d5f268625dfab773a031f4fae7f8752", + "sourceName": "src/interfaces/IERC20.sol", + "solcConfig": { + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs", + "appendCBOR": true + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ] + } + }, + "evmVersion": "london", + "libraries": {} + } + }, + "imports": [], + "versionRequirement": "^0.8.6", + "artifacts": { "IERC20": { - "0.8.17+commit.8df45f5f.Linux.gcc": "Interfaces.sol/IERC20.json" + "0.8.17+commit.8df45f5f.Linux.gcc": "IERC20.sol/IERC20.json" }, "IERC20Extended": { - "0.8.17+commit.8df45f5f.Linux.gcc": "Interfaces.sol/IERC20Extended.json" - }, + "0.8.17+commit.8df45f5f.Linux.gcc": "IERC20.sol/IERC20Extended.json" + } + } + }, + "src/interfaces/IUniswapV2Factory.sol": { + "lastModificationDate": 1677232597659, + "contentHash": "3b94ae5d4a6707147a96923b345197d1", + "sourceName": "src/interfaces/IUniswapV2Factory.sol", + "solcConfig": { + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs", + "appendCBOR": true + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ] + } + }, + "evmVersion": "london", + "libraries": {} + } + }, + "imports": [], + "versionRequirement": "^0.8.6", + "artifacts": { "IUniswapV2Factory": { - "0.8.17+commit.8df45f5f.Linux.gcc": "Interfaces.sol/IUniswapV2Factory.json" - }, + "0.8.17+commit.8df45f5f.Linux.gcc": "IUniswapV2Factory.sol/IUniswapV2Factory.json" + } + } + }, + "src/interfaces/IUniswapV2Pair.sol": { + "lastModificationDate": 1677232597659, + "contentHash": "8631347a590a7b494a262fafd1276f8c", + "sourceName": "src/interfaces/IUniswapV2Pair.sol", + "solcConfig": { + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs", + "appendCBOR": true + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ] + } + }, + "evmVersion": "london", + "libraries": {} + } + }, + "imports": [], + "versionRequirement": "^0.8.6", + "artifacts": { "IUniswapV2Pair": { - "0.8.17+commit.8df45f5f.Linux.gcc": "Interfaces.sol/IUniswapV2Pair.json" - }, + "0.8.17+commit.8df45f5f.Linux.gcc": "IUniswapV2Pair.sol/IUniswapV2Pair.json" + } + } + }, + "src/interfaces/IUniswapV2Router.sol": { + "lastModificationDate": 1677232597661, + "contentHash": "e1176fa15ddf5d62d79d6cbf1025e7d1", + "sourceName": "src/interfaces/IUniswapV2Router.sol", + "solcConfig": { + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs", + "appendCBOR": true + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ] + } + }, + "evmVersion": "london", + "libraries": {} + } + }, + "imports": [], + "versionRequirement": "^0.8.6", + "artifacts": { "IUniswapV2Router01": { - "0.8.17+commit.8df45f5f.Linux.gcc": "Interfaces.sol/IUniswapV2Router01.json" + "0.8.17+commit.8df45f5f.Linux.gcc": "IUniswapV2Router.sol/IUniswapV2Router01.json" }, "IUniswapV2Router02": { - "0.8.17+commit.8df45f5f.Linux.gcc": "Interfaces.sol/IUniswapV2Router02.json" + "0.8.17+commit.8df45f5f.Linux.gcc": "IUniswapV2Router.sol/IUniswapV2Router02.json" + } + } + }, + "src/interfaces/InterfacesAggregated.sol": { + "lastModificationDate": 1677232597662, + "contentHash": "61e39d3fe3f0e71682551f36c043c17d", + "sourceName": "src/interfaces/InterfacesAggregated.sol", + "solcConfig": { + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs", + "appendCBOR": true + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ] + } + }, + "evmVersion": "london", + "libraries": {} + } + }, + "imports": [], + "versionRequirement": "^0.8.6", + "artifacts": { + "ITreasury": { + "0.8.17+commit.8df45f5f.Linux.gcc": "InterfacesAggregated.sol/ITreasury.json" + }, + "IUniswapV2Factory": { + "0.8.17+commit.8df45f5f.Linux.gcc": "InterfacesAggregated.sol/IUniswapV2Factory.json" }, - "IWETH": { - "0.8.17+commit.8df45f5f.Linux.gcc": "Interfaces.sol/IWETH.json" + "IVesting": { + "0.8.17+commit.8df45f5f.Linux.gcc": "InterfacesAggregated.sol/IVesting.json" + } + } + }, + "src/libraries/SafeMath.sol": { + "lastModificationDate": 1677232597662, + "contentHash": "e6a68bd2e7aefab1a422d6629913316b", + "sourceName": "src/libraries/SafeMath.sol", + "solcConfig": { + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs", + "appendCBOR": true + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ] + } + }, + "evmVersion": "london", + "libraries": {} + } + }, + "imports": [], + "versionRequirement": "^0.8.0", + "artifacts": { + "SafeMath": { + "0.8.17+commit.8df45f5f.Linux.gcc": "SafeMath.sol/SafeMath.json" } } }, "src/users/Actor.sol": { - "lastModificationDate": 1675357114771, - "contentHash": "8410b927a661b953ba526c946f32f543", + "lastModificationDate": 1677232597662, + "contentHash": "c65d3387dc77540b00756d51672cc313", "sourceName": "src/users/Actor.sol", "solcConfig": { "settings": { @@ -949,7 +1270,7 @@ } }, "imports": [ - "src/interfaces/Interfaces.sol" + "src/interfaces/IERC20.sol" ], "versionRequirement": "^0.8.6", "artifacts": { @@ -958,9 +1279,76 @@ } } }, + "test/MainDeployment.t.sol": { + "lastModificationDate": 1677234136938, + "contentHash": "f9d79c5fb23c842c97173fc9e8c7ee7d", + "sourceName": "test/MainDeployment.t.sol", + "solcConfig": { + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs", + "appendCBOR": true + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ] + } + }, + "evmVersion": "london", + "libraries": {} + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "src/TaxToken.sol", + "src/Treasury.sol", + "src/Vesting.sol", + "src/extensions/Context.sol", + "src/extensions/Ownable.sol", + "src/interfaces/ERC20.sol", + "src/interfaces/IERC20.sol", + "src/interfaces/IUniswapV2Factory.sol", + "src/interfaces/IUniswapV2Router.sol", + "src/interfaces/InterfacesAggregated.sol", + "src/users/Actor.sol", + "test/Utility.sol" + ], + "versionRequirement": "^0.8.13", + "artifacts": { + "MainDeploymentTest": { + "0.8.17+commit.8df45f5f.Linux.gcc": "MainDeployment.t.sol/MainDeploymentTest.json" + } + } + }, "test/Utility.sol": { - "lastModificationDate": 1673910167565, - "contentHash": "fda4e3be9af9e1364615c579212a238f", + "lastModificationDate": 1677232597667, + "contentHash": "76ab54711b0825e617d0ce7de5639cd8", "sourceName": "test/Utility.sol", "solcConfig": { "settings": { @@ -1005,7 +1393,7 @@ "lib/forge-std/src/Vm.sol", "lib/forge-std/src/console.sol", "lib/forge-std/src/console2.sol", - "src/interfaces/Interfaces.sol", + "src/interfaces/IERC20.sol", "src/users/Actor.sol" ], "versionRequirement": "^0.8.6", @@ -1022,8 +1410,8 @@ } }, "test/Vesting.t.sol": { - "lastModificationDate": 1676328845482, - "contentHash": "9a809d2575627c6315c59f1ede1939ba", + "lastModificationDate": 1677232597667, + "contentHash": "03b084edd55931c61794c7e5f2b31e8e", "sourceName": "test/Vesting.t.sol", "solcConfig": { "settings": { @@ -1071,7 +1459,7 @@ "src/Vesting.sol", "src/extensions/Context.sol", "src/extensions/Ownable.sol", - "src/interfaces/Interfaces.sol", + "src/interfaces/IERC20.sol", "src/users/Actor.sol", "test/Utility.sol" ], diff --git a/out/Actor.sol/Actor.json b/out/Actor.sol/Actor.json index 1863552..0c053dc 100644 --- a/out/Actor.sol/Actor.json +++ b/out/Actor.sol/Actor.json @@ -141,13 +141,13 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b506105b7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea26469706673582212202284e67777fca07e29094068d3e700ce3ff463464acf1e2573fcb253960d116864736f6c63430008110033", - "sourceMap": "167:1862:20:-:0;;;;;;;;;;;;;;;;;;;", + "object": "0x608060405234801561001057600080fd5b506105b7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea2646970667358221220843b2a7925f054aa4267ccb704b85ca5db3172d6fe2b6977a4bbeadddcd28f0164736f6c63430008110033", + "sourceMap": "163:1862:28:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea26469706673582212202284e67777fca07e29094068d3e700ce3ff463464acf1e2573fcb253960d116864736f6c63430008110033", - "sourceMap": "167:1862:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;735:230;;;;;;:::i;:::-;;:::i;:::-;;;622:14:23;;615:22;597:41;;585:2;570:18;735:230:20;;;;;;;1065:274;;;;;;:::i;:::-;;:::i;1591:240::-;;;;;;:::i;:::-;;:::i;1839:185::-;;;;;;:::i;:::-;;:::i;1347:236::-;;;;;;:::i;:::-;;:::i;526:201::-;;;;;;:::i;:::-;;:::i;735:230::-;834:44;;;;;;;;;;;-1:-1:-1;;;834:44:20;;;;921:35;;-1:-1:-1;;;;;1337:32:23;;;921:35:20;;;1319:51:23;814:7:20;;834:44;897:23;;;;834:44;;1292:18:23;;921:35:20;;;;-1:-1:-1;;921:35:20;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;921:35:20;-1:-1:-1;;;;;;921:35:20;;;;;;;;;897:60;;;921:35;897:60;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;889:68:20;;735:230;-1:-1:-1;;;;;735:230:20:o;1065:274::-;1186:50;;;;;;;;;;;;;;;;1279:51;;-1:-1:-1;;;;;2414:32:23;;;1279:51:20;;;2396::23;2463:18;;;2456:34;;;1166:7:20;;1186:50;1255:23;;;;1186:50;;2369:18:23;;1279:51:20;;;-1:-1:-1;;1279:51:20;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1279:51:20;-1:-1:-1;;;;;;1279:51:20;;;;;;;;;1255:76;;;1279:51;1255:76;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1247:84:20;;1065:274;-1:-1:-1;;;;;;1065:274:20:o;1591:240::-;1695:47;;;;;;;;;;;;;;;;1785:37;;-1:-1:-1;;;;;1337:32:23;;;1785:37:20;;;1319:51:23;1675:7:20;;1695:47;1761:23;;;;1695:47;;1292:18:23;;1785:37:20;1173:203:23;1839:185:20;1915:29;;;;;;;;;;;-1:-1:-1;;;1915:29:20;;;;1987:28;;;;;;;;;;;;1895:7;;-1:-1:-1;;;;;1963:23:20;;;1987:28;;;1915:29;;1987:28;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1987:28:20;-1:-1:-1;;;;;;1987:28:20;;;;;;;;;1963:53;;;1987:28;1963:53;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1955:61:20;;1839:185;-1:-1:-1;;;;1839:185:20:o;1347:236::-;1449:45;;;;;;;;;;;;;;;;1537:37;;-1:-1:-1;;;;;1337:32:23;;;1537:37:20;;;1319:51:23;1429:7:20;;1449:45;1513:23;;;;1449:45;;1292:18:23;;1537:37:20;1173:203:23;526:201:20;610:37;;;;;;;;;;;-1:-1:-1;;;610:37:20;;;;690:28;;;;;;;;;;;;590:7;;-1:-1:-1;;;;;666:23:20;;;690:28;;;610:37;;690:28;:::i;14:173:23:-;82:20;;-1:-1:-1;;;;;131:31:23;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:260::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;;408:38;442:2;431:9;427:18;408:38;:::i;:::-;398:48;;192:260;;;;;:::o;649:328::-;726:6;734;742;795:2;783:9;774:7;770:23;766:32;763:52;;;811:1;808;801:12;763:52;834:29;853:9;834:29;:::i;:::-;824:39;;882:38;916:2;905:9;901:18;882:38;:::i;:::-;872:48;;967:2;956:9;952:18;939:32;929:42;;649:328;;;;;:::o;982:186::-;1041:6;1094:2;1082:9;1073:7;1069:23;1065:32;1062:52;;;1110:1;1107;1100:12;1062:52;1133:29;1152:9;1133:29;:::i;:::-;1123:39;982:186;-1:-1:-1;;;982:186:23:o;1381:250::-;1466:1;1476:113;1490:6;1487:1;1484:13;1476:113;;;1566:11;;;1560:18;1547:11;;;1540:39;1512:2;1505:10;1476:113;;;-1:-1:-1;;1623:1:23;1605:16;;1598:27;1381:250::o;1636:289::-;1767:3;1805:6;1799:13;1821:66;1880:6;1875:3;1868:4;1860:6;1856:17;1821:66;:::i;:::-;1903:16;;;;;1636:289;-1:-1:-1;;1636:289:23:o", + "object": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea2646970667358221220843b2a7925f054aa4267ccb704b85ca5db3172d6fe2b6977a4bbeadddcd28f0164736f6c63430008110033", + "sourceMap": "163:1862:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;731:230;;;;;;:::i;:::-;;:::i;:::-;;;622:14:32;;615:22;597:41;;585:2;570:18;731:230:28;;;;;;;1061:274;;;;;;:::i;:::-;;:::i;1587:240::-;;;;;;:::i;:::-;;:::i;1835:185::-;;;;;;:::i;:::-;;:::i;1343:236::-;;;;;;:::i;:::-;;:::i;522:201::-;;;;;;:::i;:::-;;:::i;731:230::-;830:44;;;;;;;;;;;-1:-1:-1;;;830:44:28;;;;917:35;;-1:-1:-1;;;;;1337:32:32;;;917:35:28;;;1319:51:32;810:7:28;;830:44;893:23;;;;830:44;;1292:18:32;;917:35:28;;;;-1:-1:-1;;917:35:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;917:35:28;-1:-1:-1;;;;;;917:35:28;;;;;;;;;893:60;;;917:35;893:60;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;885:68:28;;731:230;-1:-1:-1;;;;;731:230:28:o;1061:274::-;1182:50;;;;;;;;;;;;;;;;1275:51;;-1:-1:-1;;;;;2414:32:32;;;1275:51:28;;;2396::32;2463:18;;;2456:34;;;1162:7:28;;1182:50;1251:23;;;;1182:50;;2369:18:32;;1275:51:28;;;-1:-1:-1;;1275:51:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1275:51:28;-1:-1:-1;;;;;;1275:51:28;;;;;;;;;1251:76;;;1275:51;1251:76;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1243:84:28;;1061:274;-1:-1:-1;;;;;;1061:274:28:o;1587:240::-;1691:47;;;;;;;;;;;;;;;;1781:37;;-1:-1:-1;;;;;1337:32:32;;;1781:37:28;;;1319:51:32;1671:7:28;;1691:47;1757:23;;;;1691:47;;1292:18:32;;1781:37:28;1173:203:32;1835:185:28;1911:29;;;;;;;;;;;-1:-1:-1;;;1911:29:28;;;;1983:28;;;;;;;;;;;;1891:7;;-1:-1:-1;;;;;1959:23:28;;;1983:28;;;1911:29;;1983:28;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1983:28:28;-1:-1:-1;;;;;;1983:28:28;;;;;;;;;1959:53;;;1983:28;1959:53;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1951:61:28;;1835:185;-1:-1:-1;;;;1835:185:28:o;1343:236::-;1445:45;;;;;;;;;;;;;;;;1533:37;;-1:-1:-1;;;;;1337:32:32;;;1533:37:28;;;1319:51:32;1425:7:28;;1445:45;1509:23;;;;1445:45;;1292:18:32;;1533:37:28;1173:203:32;522:201:28;606:37;;;;;;;;;;;-1:-1:-1;;;606:37:28;;;;686:28;;;;;;;;;;;;586:7;;-1:-1:-1;;;;;662:23:28;;;686:28;;;606:37;;686:28;:::i;14:173:32:-;82:20;;-1:-1:-1;;;;;131:31:32;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:260::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;;408:38;442:2;431:9;427:18;408:38;:::i;:::-;398:48;;192:260;;;;;:::o;649:328::-;726:6;734;742;795:2;783:9;774:7;770:23;766:32;763:52;;;811:1;808;801:12;763:52;834:29;853:9;834:29;:::i;:::-;824:39;;882:38;916:2;905:9;901:18;882:38;:::i;:::-;872:48;;967:2;956:9;952:18;939:32;929:42;;649:328;;;;;:::o;982:186::-;1041:6;1094:2;1082:9;1073:7;1069:23;1065:32;1062:52;;;1110:1;1107;1100:12;1062:52;1133:29;1152:9;1133:29;:::i;:::-;1123:39;982:186;-1:-1:-1;;;982:186:32:o;1381:250::-;1466:1;1476:113;1490:6;1487:1;1484:13;1476:113;;;1566:11;;;1560:18;1547:11;;;1540:39;1512:2;1505:10;1476:113;;;-1:-1:-1;;1623:1:32;1605:16;;1598:27;1381:250::o;1636:289::-;1767:3;1805:6;1799:13;1821:66;1880:6;1875:3;1868:4;1860:6;1856:17;1821:66;:::i;:::-;1903:16;;;;;1636:289;-1:-1:-1;;1636:289:32:o", "linkReferences": {} }, "methodIdentifiers": { @@ -158,7 +158,7 @@ "try_removeInvestor(address,address)": "d0b940f4", "try_withdrawErc20(address,address)": "05e31e36" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokensToVest\",\"type\":\"uint256\"}],\"name\":\"try_addInvestor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"}],\"name\":\"try_claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"}],\"name\":\"try_enableVesting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"try_getAmountToClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"try_removeInvestor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"try_withdrawErc20\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"try_addInvestor(address,address,uint256)\":{\"notice\":\"Ensure, when creating the sig -> leave no spaces between param data types.\"},\"try_enableVesting(address)\":{\"notice\":\"PROVE VESTING ///\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/users/Actor.sol\":\"Actor\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/interfaces/Interfaces.sol\":{\"keccak256\":\"0x741b318f522ba8451f4a2e40afcf59e995484318fabe7c57adeba3124bbd7e04\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dba0a37a10519080f892d5c8b87a0ec026ef73492195a901e49f74766b5915f7\",\"dweb:/ipfs/QmduauRea8YdqJaMeHiYH2tRtbydoqgVirSaTzbXMoEjYX\"]},\"src/users/Actor.sol\":{\"keccak256\":\"0x4d9d9176a043f8212d9f383afa33565fcc83845346ae77d6b4bd80a5ece31b5e\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://6c9d789e1e106682d4ee38523b8b8af1b02903aba1079e5dc2ec31ecf709f96a\",\"dweb:/ipfs/QmSuGiTD8dPDXBLU4B3EoJK2zyQz3MQ9GKYiWzPyJnasRb\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokensToVest\",\"type\":\"uint256\"}],\"name\":\"try_addInvestor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"}],\"name\":\"try_claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"}],\"name\":\"try_enableVesting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"try_getAmountToClaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"try_removeInvestor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"try_withdrawErc20\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"try_addInvestor(address,address,uint256)\":{\"notice\":\"Ensure, when creating the sig -> leave no spaces between param data types.\"},\"try_enableVesting(address)\":{\"notice\":\"PROVE VESTING ///\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/users/Actor.sol\":\"Actor\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be\",\"dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA\"]},\"src/users/Actor.sol\":{\"keccak256\":\"0x6ad8911c2d305f1bac636ad070f00e47cb2912c78883ea24698030b41a39ccd3\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://917f42c979b5f2c9bad3cd2c5d34f8caec92282536e6f938e7e20dd1925c4843\",\"dweb:/ipfs/QmYmTcZ3oEDWPUnCy6BfrpRMMeMyhe7gF423HbNSPatXs5\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.17+commit.8df45f5f" @@ -342,19 +342,19 @@ "libraries": {} }, "sources": { - "src/interfaces/Interfaces.sol": { - "keccak256": "0x741b318f522ba8451f4a2e40afcf59e995484318fabe7c57adeba3124bbd7e04", + "src/interfaces/IERC20.sol": { + "keccak256": "0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f", "urls": [ - "bzz-raw://dba0a37a10519080f892d5c8b87a0ec026ef73492195a901e49f74766b5915f7", - "dweb:/ipfs/QmduauRea8YdqJaMeHiYH2tRtbydoqgVirSaTzbXMoEjYX" + "bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be", + "dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA" ], "license": "GPL-3.0-or-later" }, "src/users/Actor.sol": { - "keccak256": "0x4d9d9176a043f8212d9f383afa33565fcc83845346ae77d6b4bd80a5ece31b5e", + "keccak256": "0x6ad8911c2d305f1bac636ad070f00e47cb2912c78883ea24698030b41a39ccd3", "urls": [ - "bzz-raw://6c9d789e1e106682d4ee38523b8b8af1b02903aba1079e5dc2ec31ecf709f96a", - "dweb:/ipfs/QmSuGiTD8dPDXBLU4B3EoJK2zyQz3MQ9GKYiWzPyJnasRb" + "bzz-raw://917f42c979b5f2c9bad3cd2c5d34f8caec92282536e6f938e7e20dd1925c4843", + "dweb:/ipfs/QmYmTcZ3oEDWPUnCy6BfrpRMMeMyhe7gF423HbNSPatXs5" ], "license": "AGPL-3.0-or-later" } @@ -363,22 +363,22 @@ }, "ast": { "absolutePath": "src/users/Actor.sol", - "id": 27386, + "id": 30380, "exportedSymbols": { "Actor": [ - 27385 + 30379 ], "IERC20": [ - 26425 + 29158 ] }, "nodeType": "SourceUnit", - "src": "47:1982:20", + "src": "47:1978:28", "nodes": [ { - "id": 27208, + "id": 30202, "nodeType": "PragmaDirective", - "src": "47:23:20", + "src": "47:23:28", "nodes": [], "literals": [ "solidity", @@ -388,9 +388,9 @@ ] }, { - "id": 27209, + "id": 30203, "nodeType": "PragmaDirective", - "src": "72:33:20", + "src": "72:33:28", "nodes": [], "literals": [ "experimental", @@ -398,24 +398,24 @@ ] }, { - "id": 27211, + "id": 30205, "nodeType": "ImportDirective", - "src": "109:54:20", + "src": "109:50:28", "nodes": [], - "absolutePath": "src/interfaces/Interfaces.sol", - "file": "../interfaces/Interfaces.sol", + "absolutePath": "src/interfaces/IERC20.sol", + "file": "../interfaces/IERC20.sol", "nameLocation": "-1:-1:-1", - "scope": 27386, - "sourceUnit": 27207, + "scope": 30380, + "sourceUnit": 29167, "symbolAliases": [ { "foreign": { - "id": 27210, + "id": 30204, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "118:6:20", + "referencedDeclaration": 29158, + "src": "118:6:28", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -424,35 +424,35 @@ "unitAlias": "" }, { - "id": 27385, + "id": 30379, "nodeType": "ContractDefinition", - "src": "167:1862:20", + "src": "163:1862:28", "nodes": [ { - "id": 27238, + "id": 30232, "nodeType": "FunctionDefinition", - "src": "526:201:20", + "src": "522:201:28", "nodes": [], "body": { - "id": 27237, + "id": 30231, "nodeType": "Block", - "src": "599:128:20", + "src": "595:128:28", "nodes": [], "statements": [ { "assignments": [ - 27220 + 30214 ], "declarations": [ { "constant": false, - "id": 27220, + "id": 30214, "mutability": "mutable", "name": "sig", - "nameLocation": "624:3:20", + "nameLocation": "620:3:28", "nodeType": "VariableDeclaration", - "scope": 27237, - "src": "610:17:20", + "scope": 30231, + "src": "606:17:28", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -460,10 +460,10 @@ "typeString": "string" }, "typeName": { - "id": 27219, + "id": 30213, "name": "string", "nodeType": "ElementaryTypeName", - "src": "610:6:20", + "src": "606:6:28", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -472,17 +472,17 @@ "visibility": "internal" } ], - "id": 27222, + "id": 30216, "initialValue": { "hexValue": "656e61626c6556657374696e672829", - "id": 27221, + "id": 30215, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "630:17:20", + "src": "626:17:28", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5b904cb7e54f9eebff123533c7619ffeccd13e2189b4b54a78d9a17ede0e3f58", "typeString": "literal_string \"enableVesting()\"" @@ -490,11 +490,11 @@ "value": "enableVesting()" }, "nodeType": "VariableDeclarationStatement", - "src": "610:37:20" + "src": "606:37:28" }, { "expression": { - "id": 27235, + "id": 30229, "isConstant": false, "isLValue": false, "isPure": false, @@ -502,12 +502,12 @@ "leftHandSide": { "components": [ { - "id": 27223, + "id": 30217, "name": "ok", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27217, - "src": "659:2:20", + "referencedDeclaration": 30211, + "src": "655:2:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -515,14 +515,14 @@ }, null ], - "id": 27224, + "id": 30218, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "658:5:20", + "src": "654:5:28", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$__$", "typeString": "tuple(bool,)" @@ -535,12 +535,12 @@ { "arguments": [ { - "id": 27232, + "id": 30226, "name": "sig", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27220, - "src": "714:3:20", + "referencedDeclaration": 30214, + "src": "710:3:28", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -555,32 +555,32 @@ } ], "expression": { - "id": 27230, + "id": 30224, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "690:3:20", + "src": "686:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 27231, + "id": 30225, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "694:19:20", + "memberLocation": "690:19:28", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", - "src": "690:23:20", + "src": "686:23:28", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 27233, + "id": 30227, "isConstant": false, "isLValue": false, "isPure": false, @@ -589,7 +589,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "690:28:20", + "src": "686:28:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -607,12 +607,12 @@ "expression": { "arguments": [ { - "id": 27227, + "id": 30221, "name": "_contract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27214, - "src": "674:9:20", + "referencedDeclaration": 30208, + "src": "670:9:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -626,26 +626,26 @@ "typeString": "address" } ], - "id": 27226, + "id": 30220, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "666:7:20", + "src": "662:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27225, + "id": 30219, "name": "address", "nodeType": "ElementaryTypeName", - "src": "666:7:20", + "src": "662:7:28", "typeDescriptions": {} } }, - "id": 27228, + "id": 30222, "isConstant": false, "isLValue": false, "isPure": false, @@ -654,28 +654,28 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "666:18:20", + "src": "662:18:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27229, + "id": 30223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "685:4:20", + "memberLocation": "681:4:28", "memberName": "call", "nodeType": "MemberAccess", - "src": "666:23:20", + "src": "662:23:28", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 27234, + "id": 30228, "isConstant": false, "isLValue": false, "isPure": false, @@ -684,29 +684,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "666:53:20", + "src": "662:53:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, - "src": "658:61:20", + "src": "654:61:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27236, + "id": 30230, "nodeType": "ExpressionStatement", - "src": "658:61:20" + "src": "654:61:28" } ] }, "documentation": { - "id": 27212, + "id": 30206, "nodeType": "StructuredDocumentation", - "src": "362:74:20", + "src": "358:74:28", "text": "PROVE VESTING ///" }, "functionSelector": "dbc82daa", @@ -714,20 +714,20 @@ "kind": "function", "modifiers": [], "name": "try_enableVesting", - "nameLocation": "535:17:20", + "nameLocation": "531:17:28", "parameters": { - "id": 27215, + "id": 30209, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27214, + "id": 30208, "mutability": "mutable", "name": "_contract", - "nameLocation": "561:9:20", + "nameLocation": "557:9:28", "nodeType": "VariableDeclaration", - "scope": 27238, - "src": "553:17:20", + "scope": 30232, + "src": "549:17:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -735,10 +735,10 @@ "typeString": "address" }, "typeName": { - "id": 27213, + "id": 30207, "name": "address", "nodeType": "ElementaryTypeName", - "src": "553:7:20", + "src": "549:7:28", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -748,21 +748,21 @@ "visibility": "internal" } ], - "src": "552:19:20" + "src": "548:19:28" }, "returnParameters": { - "id": 27218, + "id": 30212, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27217, + "id": 30211, "mutability": "mutable", "name": "ok", - "nameLocation": "595:2:20", + "nameLocation": "591:2:28", "nodeType": "VariableDeclaration", - "scope": 27238, - "src": "590:7:20", + "scope": 30232, + "src": "586:7:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -770,10 +770,10 @@ "typeString": "bool" }, "typeName": { - "id": 27216, + "id": 30210, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "590:4:20", + "src": "586:4:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -782,38 +782,38 @@ "visibility": "internal" } ], - "src": "589:9:20" + "src": "585:9:28" }, - "scope": 27385, + "scope": 30379, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 27267, + "id": 30261, "nodeType": "FunctionDefinition", - "src": "735:230:20", + "src": "731:230:28", "nodes": [], "body": { - "id": 27266, + "id": 30260, "nodeType": "Block", - "src": "823:142:20", + "src": "819:142:28", "nodes": [], "statements": [ { "assignments": [ - 27248 + 30242 ], "declarations": [ { "constant": false, - "id": 27248, + "id": 30242, "mutability": "mutable", "name": "sig", - "nameLocation": "848:3:20", + "nameLocation": "844:3:28", "nodeType": "VariableDeclaration", - "scope": 27266, - "src": "834:17:20", + "scope": 30260, + "src": "830:17:28", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -821,10 +821,10 @@ "typeString": "string" }, "typeName": { - "id": 27247, + "id": 30241, "name": "string", "nodeType": "ElementaryTypeName", - "src": "834:6:20", + "src": "830:6:28", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -833,17 +833,17 @@ "visibility": "internal" } ], - "id": 27250, + "id": 30244, "initialValue": { "hexValue": "77697468647261774572633230286164647265737329", - "id": 27249, + "id": 30243, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "854:24:20", + "src": "850:24:28", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c7e42b1b926b05c49c77b1ca7a31f7dd18e743335e799f375119f138d2792186", "typeString": "literal_string \"withdrawErc20(address)\"" @@ -851,11 +851,11 @@ "value": "withdrawErc20(address)" }, "nodeType": "VariableDeclarationStatement", - "src": "834:44:20" + "src": "830:44:28" }, { "expression": { - "id": 27264, + "id": 30258, "isConstant": false, "isLValue": false, "isPure": false, @@ -863,12 +863,12 @@ "leftHandSide": { "components": [ { - "id": 27251, + "id": 30245, "name": "ok", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27245, - "src": "890:2:20", + "referencedDeclaration": 30239, + "src": "886:2:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -876,14 +876,14 @@ }, null ], - "id": 27252, + "id": 30246, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "889:5:20", + "src": "885:5:28", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$__$", "typeString": "tuple(bool,)" @@ -896,24 +896,24 @@ { "arguments": [ { - "id": 27260, + "id": 30254, "name": "sig", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27248, - "src": "945:3:20", + "referencedDeclaration": 30242, + "src": "941:3:28", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 27261, + "id": 30255, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27242, - "src": "950:5:20", + "referencedDeclaration": 30236, + "src": "946:5:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -932,32 +932,32 @@ } ], "expression": { - "id": 27258, + "id": 30252, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "921:3:20", + "src": "917:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 27259, + "id": 30253, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "925:19:20", + "memberLocation": "921:19:28", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", - "src": "921:23:20", + "src": "917:23:28", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 27262, + "id": 30256, "isConstant": false, "isLValue": false, "isPure": false, @@ -966,7 +966,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "921:35:20", + "src": "917:35:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -984,12 +984,12 @@ "expression": { "arguments": [ { - "id": 27255, + "id": 30249, "name": "_contract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27240, - "src": "905:9:20", + "referencedDeclaration": 30234, + "src": "901:9:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1003,26 +1003,26 @@ "typeString": "address" } ], - "id": 27254, + "id": 30248, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "897:7:20", + "src": "893:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27253, + "id": 30247, "name": "address", "nodeType": "ElementaryTypeName", - "src": "897:7:20", + "src": "893:7:28", "typeDescriptions": {} } }, - "id": 27256, + "id": 30250, "isConstant": false, "isLValue": false, "isPure": false, @@ -1031,28 +1031,28 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "897:18:20", + "src": "893:18:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27257, + "id": 30251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "916:4:20", + "memberLocation": "912:4:28", "memberName": "call", "nodeType": "MemberAccess", - "src": "897:23:20", + "src": "893:23:28", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 27263, + "id": 30257, "isConstant": false, "isLValue": false, "isPure": false, @@ -1061,22 +1061,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "897:60:20", + "src": "893:60:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, - "src": "889:68:20", + "src": "885:68:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27265, + "id": 30259, "nodeType": "ExpressionStatement", - "src": "889:68:20" + "src": "885:68:28" } ] }, @@ -1085,20 +1085,20 @@ "kind": "function", "modifiers": [], "name": "try_withdrawErc20", - "nameLocation": "744:17:20", + "nameLocation": "740:17:28", "parameters": { - "id": 27243, + "id": 30237, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27240, + "id": 30234, "mutability": "mutable", "name": "_contract", - "nameLocation": "770:9:20", + "nameLocation": "766:9:28", "nodeType": "VariableDeclaration", - "scope": 27267, - "src": "762:17:20", + "scope": 30261, + "src": "758:17:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1106,10 +1106,10 @@ "typeString": "address" }, "typeName": { - "id": 27239, + "id": 30233, "name": "address", "nodeType": "ElementaryTypeName", - "src": "762:7:20", + "src": "758:7:28", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1120,13 +1120,13 @@ }, { "constant": false, - "id": 27242, + "id": 30236, "mutability": "mutable", "name": "token", - "nameLocation": "789:5:20", + "nameLocation": "785:5:28", "nodeType": "VariableDeclaration", - "scope": 27267, - "src": "781:13:20", + "scope": 30261, + "src": "777:13:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1134,10 +1134,10 @@ "typeString": "address" }, "typeName": { - "id": 27241, + "id": 30235, "name": "address", "nodeType": "ElementaryTypeName", - "src": "781:7:20", + "src": "777:7:28", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1147,21 +1147,21 @@ "visibility": "internal" } ], - "src": "761:34:20" + "src": "757:34:28" }, "returnParameters": { - "id": 27246, + "id": 30240, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27245, + "id": 30239, "mutability": "mutable", "name": "ok", - "nameLocation": "819:2:20", + "nameLocation": "815:2:28", "nodeType": "VariableDeclaration", - "scope": 27267, - "src": "814:7:20", + "scope": 30261, + "src": "810:7:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1169,10 +1169,10 @@ "typeString": "bool" }, "typeName": { - "id": 27244, + "id": 30238, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "814:4:20", + "src": "810:4:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1181,38 +1181,38 @@ "visibility": "internal" } ], - "src": "813:9:20" + "src": "809:9:28" }, - "scope": 27385, + "scope": 30379, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 27300, + "id": 30294, "nodeType": "FunctionDefinition", - "src": "1065:274:20", + "src": "1061:274:28", "nodes": [], "body": { - "id": 27299, + "id": 30293, "nodeType": "Block", - "src": "1175:164:20", + "src": "1171:164:28", "nodes": [], "statements": [ { "assignments": [ - 27280 + 30274 ], "declarations": [ { "constant": false, - "id": 27280, + "id": 30274, "mutability": "mutable", "name": "sig", - "nameLocation": "1200:3:20", + "nameLocation": "1196:3:28", "nodeType": "VariableDeclaration", - "scope": 27299, - "src": "1186:17:20", + "scope": 30293, + "src": "1182:17:28", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1220,10 +1220,10 @@ "typeString": "string" }, "typeName": { - "id": 27279, + "id": 30273, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1186:6:20", + "src": "1182:6:28", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1232,17 +1232,17 @@ "visibility": "internal" } ], - "id": 27282, + "id": 30276, "initialValue": { "hexValue": "616464496e766573746f7228616464726573732c75696e7432353629", - "id": 27281, + "id": 30275, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1206:30:20", + "src": "1202:30:28", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ec20b457b4d36c8323d61cf7279b5e11d170be5c3979a7ff2b1037d4e746e0b3", "typeString": "literal_string \"addInvestor(address,uint256)\"" @@ -1250,11 +1250,11 @@ "value": "addInvestor(address,uint256)" }, "nodeType": "VariableDeclarationStatement", - "src": "1186:50:20" + "src": "1182:50:28" }, { "expression": { - "id": 27297, + "id": 30291, "isConstant": false, "isLValue": false, "isPure": false, @@ -1262,12 +1262,12 @@ "leftHandSide": { "components": [ { - "id": 27283, + "id": 30277, "name": "ok", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27277, - "src": "1248:2:20", + "referencedDeclaration": 30271, + "src": "1244:2:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1275,14 +1275,14 @@ }, null ], - "id": 27284, + "id": 30278, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "1247:5:20", + "src": "1243:5:28", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$__$", "typeString": "tuple(bool,)" @@ -1295,36 +1295,36 @@ { "arguments": [ { - "id": 27292, + "id": 30286, "name": "sig", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27280, - "src": "1303:3:20", + "referencedDeclaration": 30274, + "src": "1299:3:28", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 27293, + "id": 30287, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27272, - "src": "1308:7:20", + "referencedDeclaration": 30266, + "src": "1304:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 27294, + "id": 30288, "name": "tokensToVest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27274, - "src": "1317:12:20", + "referencedDeclaration": 30268, + "src": "1313:12:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1347,32 +1347,32 @@ } ], "expression": { - "id": 27290, + "id": 30284, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "1279:3:20", + "src": "1275:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 27291, + "id": 30285, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1283:19:20", + "memberLocation": "1279:19:28", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", - "src": "1279:23:20", + "src": "1275:23:28", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 27295, + "id": 30289, "isConstant": false, "isLValue": false, "isPure": false, @@ -1381,7 +1381,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1279:51:20", + "src": "1275:51:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1399,12 +1399,12 @@ "expression": { "arguments": [ { - "id": 27287, + "id": 30281, "name": "_contract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27270, - "src": "1263:9:20", + "referencedDeclaration": 30264, + "src": "1259:9:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1418,26 +1418,26 @@ "typeString": "address" } ], - "id": 27286, + "id": 30280, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1255:7:20", + "src": "1251:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27285, + "id": 30279, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1255:7:20", + "src": "1251:7:28", "typeDescriptions": {} } }, - "id": 27288, + "id": 30282, "isConstant": false, "isLValue": false, "isPure": false, @@ -1446,28 +1446,28 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1255:18:20", + "src": "1251:18:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27289, + "id": 30283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1274:4:20", + "memberLocation": "1270:4:28", "memberName": "call", "nodeType": "MemberAccess", - "src": "1255:23:20", + "src": "1251:23:28", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 27296, + "id": 30290, "isConstant": false, "isLValue": false, "isPure": false, @@ -1476,29 +1476,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1255:76:20", + "src": "1251:76:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, - "src": "1247:84:20", + "src": "1243:84:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27298, + "id": 30292, "nodeType": "ExpressionStatement", - "src": "1247:84:20" + "src": "1243:84:28" } ] }, "documentation": { - "id": 27268, + "id": 30262, "nodeType": "StructuredDocumentation", - "src": "973:86:20", + "src": "969:86:28", "text": "@notice Ensure, when creating the sig -> leave no spaces between param data types." }, "functionSelector": "6c4f94dc", @@ -1506,20 +1506,20 @@ "kind": "function", "modifiers": [], "name": "try_addInvestor", - "nameLocation": "1074:15:20", + "nameLocation": "1070:15:28", "parameters": { - "id": 27275, + "id": 30269, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27270, + "id": 30264, "mutability": "mutable", "name": "_contract", - "nameLocation": "1098:9:20", + "nameLocation": "1094:9:28", "nodeType": "VariableDeclaration", - "scope": 27300, - "src": "1090:17:20", + "scope": 30294, + "src": "1086:17:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1527,10 +1527,10 @@ "typeString": "address" }, "typeName": { - "id": 27269, + "id": 30263, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1090:7:20", + "src": "1086:7:28", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1541,13 +1541,13 @@ }, { "constant": false, - "id": 27272, + "id": 30266, "mutability": "mutable", "name": "account", - "nameLocation": "1117:7:20", + "nameLocation": "1113:7:28", "nodeType": "VariableDeclaration", - "scope": 27300, - "src": "1109:15:20", + "scope": 30294, + "src": "1105:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1555,10 +1555,10 @@ "typeString": "address" }, "typeName": { - "id": 27271, + "id": 30265, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1109:7:20", + "src": "1105:7:28", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1569,13 +1569,13 @@ }, { "constant": false, - "id": 27274, + "id": 30268, "mutability": "mutable", "name": "tokensToVest", - "nameLocation": "1134:12:20", + "nameLocation": "1130:12:28", "nodeType": "VariableDeclaration", - "scope": 27300, - "src": "1126:20:20", + "scope": 30294, + "src": "1122:20:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1583,10 +1583,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27273, + "id": 30267, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1126:7:20", + "src": "1122:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1595,21 +1595,21 @@ "visibility": "internal" } ], - "src": "1089:58:20" + "src": "1085:58:28" }, "returnParameters": { - "id": 27278, + "id": 30272, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27277, + "id": 30271, "mutability": "mutable", "name": "ok", - "nameLocation": "1171:2:20", + "nameLocation": "1167:2:28", "nodeType": "VariableDeclaration", - "scope": 27300, - "src": "1166:7:20", + "scope": 30294, + "src": "1162:7:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1617,10 +1617,10 @@ "typeString": "bool" }, "typeName": { - "id": 27276, + "id": 30270, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1166:4:20", + "src": "1162:4:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1629,38 +1629,38 @@ "visibility": "internal" } ], - "src": "1165:9:20" + "src": "1161:9:28" }, - "scope": 27385, + "scope": 30379, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 27329, + "id": 30323, "nodeType": "FunctionDefinition", - "src": "1347:236:20", + "src": "1343:236:28", "nodes": [], "body": { - "id": 27328, + "id": 30322, "nodeType": "Block", - "src": "1438:145:20", + "src": "1434:145:28", "nodes": [], "statements": [ { "assignments": [ - 27310 + 30304 ], "declarations": [ { "constant": false, - "id": 27310, + "id": 30304, "mutability": "mutable", "name": "sig", - "nameLocation": "1463:3:20", + "nameLocation": "1459:3:28", "nodeType": "VariableDeclaration", - "scope": 27328, - "src": "1449:17:20", + "scope": 30322, + "src": "1445:17:28", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1668,10 +1668,10 @@ "typeString": "string" }, "typeName": { - "id": 27309, + "id": 30303, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1449:6:20", + "src": "1445:6:28", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1680,17 +1680,17 @@ "visibility": "internal" } ], - "id": 27312, + "id": 30306, "initialValue": { "hexValue": "72656d6f7665496e766573746f72286164647265737329", - "id": 27311, + "id": 30305, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1469:25:20", + "src": "1465:25:28", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42714978fc90da191cf3e750d971ea9ece3dcc115c3f414e3381727916678878", "typeString": "literal_string \"removeInvestor(address)\"" @@ -1698,11 +1698,11 @@ "value": "removeInvestor(address)" }, "nodeType": "VariableDeclarationStatement", - "src": "1449:45:20" + "src": "1445:45:28" }, { "expression": { - "id": 27326, + "id": 30320, "isConstant": false, "isLValue": false, "isPure": false, @@ -1710,12 +1710,12 @@ "leftHandSide": { "components": [ { - "id": 27313, + "id": 30307, "name": "ok", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27307, - "src": "1506:2:20", + "referencedDeclaration": 30301, + "src": "1502:2:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1723,14 +1723,14 @@ }, null ], - "id": 27314, + "id": 30308, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "1505:5:20", + "src": "1501:5:28", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$__$", "typeString": "tuple(bool,)" @@ -1743,24 +1743,24 @@ { "arguments": [ { - "id": 27322, + "id": 30316, "name": "sig", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27310, - "src": "1561:3:20", + "referencedDeclaration": 30304, + "src": "1557:3:28", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 27323, + "id": 30317, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27304, - "src": "1566:7:20", + "referencedDeclaration": 30298, + "src": "1562:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1779,32 +1779,32 @@ } ], "expression": { - "id": 27320, + "id": 30314, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "1537:3:20", + "src": "1533:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 27321, + "id": 30315, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1541:19:20", + "memberLocation": "1537:19:28", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", - "src": "1537:23:20", + "src": "1533:23:28", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 27324, + "id": 30318, "isConstant": false, "isLValue": false, "isPure": false, @@ -1813,7 +1813,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1537:37:20", + "src": "1533:37:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1831,12 +1831,12 @@ "expression": { "arguments": [ { - "id": 27317, + "id": 30311, "name": "_contract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27302, - "src": "1521:9:20", + "referencedDeclaration": 30296, + "src": "1517:9:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1850,26 +1850,26 @@ "typeString": "address" } ], - "id": 27316, + "id": 30310, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1513:7:20", + "src": "1509:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27315, + "id": 30309, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1513:7:20", + "src": "1509:7:28", "typeDescriptions": {} } }, - "id": 27318, + "id": 30312, "isConstant": false, "isLValue": false, "isPure": false, @@ -1878,28 +1878,28 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1513:18:20", + "src": "1509:18:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27319, + "id": 30313, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1532:4:20", + "memberLocation": "1528:4:28", "memberName": "call", "nodeType": "MemberAccess", - "src": "1513:23:20", + "src": "1509:23:28", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 27325, + "id": 30319, "isConstant": false, "isLValue": false, "isPure": false, @@ -1908,22 +1908,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1513:62:20", + "src": "1509:62:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, - "src": "1505:70:20", + "src": "1501:70:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27327, + "id": 30321, "nodeType": "ExpressionStatement", - "src": "1505:70:20" + "src": "1501:70:28" } ] }, @@ -1932,20 +1932,20 @@ "kind": "function", "modifiers": [], "name": "try_removeInvestor", - "nameLocation": "1356:18:20", + "nameLocation": "1352:18:28", "parameters": { - "id": 27305, + "id": 30299, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27302, + "id": 30296, "mutability": "mutable", "name": "_contract", - "nameLocation": "1383:9:20", + "nameLocation": "1379:9:28", "nodeType": "VariableDeclaration", - "scope": 27329, - "src": "1375:17:20", + "scope": 30323, + "src": "1371:17:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1953,10 +1953,10 @@ "typeString": "address" }, "typeName": { - "id": 27301, + "id": 30295, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1375:7:20", + "src": "1371:7:28", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1967,13 +1967,13 @@ }, { "constant": false, - "id": 27304, + "id": 30298, "mutability": "mutable", "name": "account", - "nameLocation": "1402:7:20", + "nameLocation": "1398:7:28", "nodeType": "VariableDeclaration", - "scope": 27329, - "src": "1394:15:20", + "scope": 30323, + "src": "1390:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1981,10 +1981,10 @@ "typeString": "address" }, "typeName": { - "id": 27303, + "id": 30297, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1394:7:20", + "src": "1390:7:28", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1994,21 +1994,21 @@ "visibility": "internal" } ], - "src": "1374:36:20" + "src": "1370:36:28" }, "returnParameters": { - "id": 27308, + "id": 30302, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27307, + "id": 30301, "mutability": "mutable", "name": "ok", - "nameLocation": "1434:2:20", + "nameLocation": "1430:2:28", "nodeType": "VariableDeclaration", - "scope": 27329, - "src": "1429:7:20", + "scope": 30323, + "src": "1425:7:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2016,10 +2016,10 @@ "typeString": "bool" }, "typeName": { - "id": 27306, + "id": 30300, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1429:4:20", + "src": "1425:4:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2028,38 +2028,38 @@ "visibility": "internal" } ], - "src": "1428:9:20" + "src": "1424:9:28" }, - "scope": 27385, + "scope": 30379, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 27358, + "id": 30352, "nodeType": "FunctionDefinition", - "src": "1591:240:20", + "src": "1587:240:28", "nodes": [], "body": { - "id": 27357, + "id": 30351, "nodeType": "Block", - "src": "1684:147:20", + "src": "1680:147:28", "nodes": [], "statements": [ { "assignments": [ - 27339 + 30333 ], "declarations": [ { "constant": false, - "id": 27339, + "id": 30333, "mutability": "mutable", "name": "sig", - "nameLocation": "1709:3:20", + "nameLocation": "1705:3:28", "nodeType": "VariableDeclaration", - "scope": 27357, - "src": "1695:17:20", + "scope": 30351, + "src": "1691:17:28", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2067,10 +2067,10 @@ "typeString": "string" }, "typeName": { - "id": 27338, + "id": 30332, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1695:6:20", + "src": "1691:6:28", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2079,17 +2079,17 @@ "visibility": "internal" } ], - "id": 27341, + "id": 30335, "initialValue": { "hexValue": "676574416d6f756e74546f436c61696d286164647265737329", - "id": 27340, + "id": 30334, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1715:27:20", + "src": "1711:27:28", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0bca8bcd3535886522318b1c78437c2aaa13a09b67e1c902cd4214f2d9b6ee3e", "typeString": "literal_string \"getAmountToClaim(address)\"" @@ -2097,11 +2097,11 @@ "value": "getAmountToClaim(address)" }, "nodeType": "VariableDeclarationStatement", - "src": "1695:47:20" + "src": "1691:47:28" }, { "expression": { - "id": 27355, + "id": 30349, "isConstant": false, "isLValue": false, "isPure": false, @@ -2109,12 +2109,12 @@ "leftHandSide": { "components": [ { - "id": 27342, + "id": 30336, "name": "ok", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27336, - "src": "1754:2:20", + "referencedDeclaration": 30330, + "src": "1750:2:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2122,14 +2122,14 @@ }, null ], - "id": 27343, + "id": 30337, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "1753:5:20", + "src": "1749:5:28", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$__$", "typeString": "tuple(bool,)" @@ -2142,24 +2142,24 @@ { "arguments": [ { - "id": 27351, + "id": 30345, "name": "sig", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27339, - "src": "1809:3:20", + "referencedDeclaration": 30333, + "src": "1805:3:28", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 27352, + "id": 30346, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27333, - "src": "1814:7:20", + "referencedDeclaration": 30327, + "src": "1810:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2178,32 +2178,32 @@ } ], "expression": { - "id": 27349, + "id": 30343, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "1785:3:20", + "src": "1781:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 27350, + "id": 30344, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1789:19:20", + "memberLocation": "1785:19:28", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", - "src": "1785:23:20", + "src": "1781:23:28", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 27353, + "id": 30347, "isConstant": false, "isLValue": false, "isPure": false, @@ -2212,7 +2212,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1785:37:20", + "src": "1781:37:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2230,12 +2230,12 @@ "expression": { "arguments": [ { - "id": 27346, + "id": 30340, "name": "_contract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27331, - "src": "1769:9:20", + "referencedDeclaration": 30325, + "src": "1765:9:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2249,26 +2249,26 @@ "typeString": "address" } ], - "id": 27345, + "id": 30339, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1761:7:20", + "src": "1757:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27344, + "id": 30338, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1761:7:20", + "src": "1757:7:28", "typeDescriptions": {} } }, - "id": 27347, + "id": 30341, "isConstant": false, "isLValue": false, "isPure": false, @@ -2277,28 +2277,28 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1761:18:20", + "src": "1757:18:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27348, + "id": 30342, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1780:4:20", + "memberLocation": "1776:4:28", "memberName": "call", "nodeType": "MemberAccess", - "src": "1761:23:20", + "src": "1757:23:28", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 27354, + "id": 30348, "isConstant": false, "isLValue": false, "isPure": false, @@ -2307,22 +2307,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1761:62:20", + "src": "1757:62:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, - "src": "1753:70:20", + "src": "1749:70:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27356, + "id": 30350, "nodeType": "ExpressionStatement", - "src": "1753:70:20" + "src": "1749:70:28" } ] }, @@ -2331,20 +2331,20 @@ "kind": "function", "modifiers": [], "name": "try_getAmountToClaim", - "nameLocation": "1600:20:20", + "nameLocation": "1596:20:28", "parameters": { - "id": 27334, + "id": 30328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27331, + "id": 30325, "mutability": "mutable", "name": "_contract", - "nameLocation": "1629:9:20", + "nameLocation": "1625:9:28", "nodeType": "VariableDeclaration", - "scope": 27358, - "src": "1621:17:20", + "scope": 30352, + "src": "1617:17:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2352,10 +2352,10 @@ "typeString": "address" }, "typeName": { - "id": 27330, + "id": 30324, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1621:7:20", + "src": "1617:7:28", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2366,13 +2366,13 @@ }, { "constant": false, - "id": 27333, + "id": 30327, "mutability": "mutable", "name": "account", - "nameLocation": "1648:7:20", + "nameLocation": "1644:7:28", "nodeType": "VariableDeclaration", - "scope": 27358, - "src": "1640:15:20", + "scope": 30352, + "src": "1636:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2380,10 +2380,10 @@ "typeString": "address" }, "typeName": { - "id": 27332, + "id": 30326, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1640:7:20", + "src": "1636:7:28", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2393,21 +2393,21 @@ "visibility": "internal" } ], - "src": "1620:36:20" + "src": "1616:36:28" }, "returnParameters": { - "id": 27337, + "id": 30331, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27336, + "id": 30330, "mutability": "mutable", "name": "ok", - "nameLocation": "1680:2:20", + "nameLocation": "1676:2:28", "nodeType": "VariableDeclaration", - "scope": 27358, - "src": "1675:7:20", + "scope": 30352, + "src": "1671:7:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2415,10 +2415,10 @@ "typeString": "bool" }, "typeName": { - "id": 27335, + "id": 30329, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1675:4:20", + "src": "1671:4:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2427,38 +2427,38 @@ "visibility": "internal" } ], - "src": "1674:9:20" + "src": "1670:9:28" }, - "scope": 27385, + "scope": 30379, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 27384, + "id": 30378, "nodeType": "FunctionDefinition", - "src": "1839:185:20", + "src": "1835:185:28", "nodes": [], "body": { - "id": 27383, + "id": 30377, "nodeType": "Block", - "src": "1904:120:20", + "src": "1900:120:28", "nodes": [], "statements": [ { "assignments": [ - 27366 + 30360 ], "declarations": [ { "constant": false, - "id": 27366, + "id": 30360, "mutability": "mutable", "name": "sig", - "nameLocation": "1929:3:20", + "nameLocation": "1925:3:28", "nodeType": "VariableDeclaration", - "scope": 27383, - "src": "1915:17:20", + "scope": 30377, + "src": "1911:17:28", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2466,10 +2466,10 @@ "typeString": "string" }, "typeName": { - "id": 27365, + "id": 30359, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1915:6:20", + "src": "1911:6:28", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2478,17 +2478,17 @@ "visibility": "internal" } ], - "id": 27368, + "id": 30362, "initialValue": { "hexValue": "636c61696d2829", - "id": 27367, + "id": 30361, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1935:9:20", + "src": "1931:9:28", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4e71d92d1cab44b435a6dcbe7dcfe75cf72953916cfa3842f5057ce194aa60e2", "typeString": "literal_string \"claim()\"" @@ -2496,11 +2496,11 @@ "value": "claim()" }, "nodeType": "VariableDeclarationStatement", - "src": "1915:29:20" + "src": "1911:29:28" }, { "expression": { - "id": 27381, + "id": 30375, "isConstant": false, "isLValue": false, "isPure": false, @@ -2508,12 +2508,12 @@ "leftHandSide": { "components": [ { - "id": 27369, + "id": 30363, "name": "ok", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27363, - "src": "1956:2:20", + "referencedDeclaration": 30357, + "src": "1952:2:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2521,14 +2521,14 @@ }, null ], - "id": 27370, + "id": 30364, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "1955:5:20", + "src": "1951:5:28", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$__$", "typeString": "tuple(bool,)" @@ -2541,12 +2541,12 @@ { "arguments": [ { - "id": 27378, + "id": 30372, "name": "sig", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27366, - "src": "2011:3:20", + "referencedDeclaration": 30360, + "src": "2007:3:28", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -2561,32 +2561,32 @@ } ], "expression": { - "id": 27376, + "id": 30370, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "1987:3:20", + "src": "1983:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 27377, + "id": 30371, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1991:19:20", + "memberLocation": "1987:19:28", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", - "src": "1987:23:20", + "src": "1983:23:28", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 27379, + "id": 30373, "isConstant": false, "isLValue": false, "isPure": false, @@ -2595,7 +2595,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1987:28:20", + "src": "1983:28:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2613,12 +2613,12 @@ "expression": { "arguments": [ { - "id": 27373, + "id": 30367, "name": "_contract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27360, - "src": "1971:9:20", + "referencedDeclaration": 30354, + "src": "1967:9:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2632,26 +2632,26 @@ "typeString": "address" } ], - "id": 27372, + "id": 30366, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1963:7:20", + "src": "1959:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27371, + "id": 30365, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:20", + "src": "1959:7:28", "typeDescriptions": {} } }, - "id": 27374, + "id": 30368, "isConstant": false, "isLValue": false, "isPure": false, @@ -2660,28 +2660,28 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1963:18:20", + "src": "1959:18:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27375, + "id": 30369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1982:4:20", + "memberLocation": "1978:4:28", "memberName": "call", "nodeType": "MemberAccess", - "src": "1963:23:20", + "src": "1959:23:28", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 27380, + "id": 30374, "isConstant": false, "isLValue": false, "isPure": false, @@ -2690,22 +2690,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1963:53:20", + "src": "1959:53:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, - "src": "1955:61:20", + "src": "1951:61:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27382, + "id": 30376, "nodeType": "ExpressionStatement", - "src": "1955:61:20" + "src": "1951:61:28" } ] }, @@ -2714,20 +2714,20 @@ "kind": "function", "modifiers": [], "name": "try_claim", - "nameLocation": "1848:9:20", + "nameLocation": "1844:9:28", "parameters": { - "id": 27361, + "id": 30355, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27360, + "id": 30354, "mutability": "mutable", "name": "_contract", - "nameLocation": "1866:9:20", + "nameLocation": "1862:9:28", "nodeType": "VariableDeclaration", - "scope": 27384, - "src": "1858:17:20", + "scope": 30378, + "src": "1854:17:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2735,10 +2735,10 @@ "typeString": "address" }, "typeName": { - "id": 27359, + "id": 30353, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1858:7:20", + "src": "1854:7:28", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2748,21 +2748,21 @@ "visibility": "internal" } ], - "src": "1857:19:20" + "src": "1853:19:28" }, "returnParameters": { - "id": 27364, + "id": 30358, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27363, + "id": 30357, "mutability": "mutable", "name": "ok", - "nameLocation": "1900:2:20", + "nameLocation": "1896:2:28", "nodeType": "VariableDeclaration", - "scope": 27384, - "src": "1895:7:20", + "scope": 30378, + "src": "1891:7:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2770,10 +2770,10 @@ "typeString": "bool" }, "typeName": { - "id": 27362, + "id": 30356, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1895:4:20", + "src": "1891:4:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2782,9 +2782,9 @@ "visibility": "internal" } ], - "src": "1894:9:20" + "src": "1890:9:28" }, - "scope": 27385, + "scope": 30379, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -2797,15 +2797,15 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 27385 + 30379 ], "name": "Actor", - "nameLocation": "176:5:20", - "scope": 27386, + "nameLocation": "172:5:28", + "scope": 30380, "usedErrors": [] } ], "license": "AGPL-3.0-or-later" }, - "id": 20 + "id": 28 } \ No newline at end of file diff --git a/out/Context.sol/Context.json b/out/Context.sol/Context.json index b8d6b6f..77b8404 100644 --- a/out/Context.sol/Context.json +++ b/out/Context.sol/Context.json @@ -61,19 +61,19 @@ }, "ast": { "absolutePath": "src/extensions/Context.sol", - "id": 26144, + "id": 28123, "exportedSymbols": { "Context": [ - 26143 + 28122 ] }, "nodeType": "SourceUnit", - "src": "33:929:17", + "src": "33:929:19", "nodes": [ { - "id": 26119, + "id": 28098, "nodeType": "PragmaDirective", - "src": "33:23:17", + "src": "33:23:19", "nodes": [], "literals": [ "solidity", @@ -83,19 +83,19 @@ ] }, { - "id": 26143, + "id": 28122, "nodeType": "ContractDefinition", - "src": "570:392:17", + "src": "570:392:19", "nodes": [ { - "id": 26131, + "id": 28110, "nodeType": "FunctionDefinition", - "src": "603:115:17", + "src": "603:115:19", "nodes": [], "body": { - "id": 26130, + "id": 28109, "nodeType": "Block", - "src": "673:45:17", + "src": "673:45:19", "nodes": [], "statements": [ { @@ -103,26 +103,26 @@ "arguments": [ { "expression": { - "id": 26126, + "id": 28105, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "699:3:17", + "src": "699:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 26127, + "id": 28106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "703:6:17", + "memberLocation": "703:6:19", "memberName": "sender", "nodeType": "MemberAccess", - "src": "699:10:17", + "src": "699:10:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -136,27 +136,27 @@ "typeString": "address" } ], - "id": 26125, + "id": 28104, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "691:8:17", + "src": "691:8:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { - "id": 26124, + "id": 28103, "name": "address", "nodeType": "ElementaryTypeName", - "src": "691:8:17", + "src": "691:8:19", "stateMutability": "payable", "typeDescriptions": {} } }, - "id": 26128, + "id": 28107, "isConstant": false, "isLValue": false, "isPure": false, @@ -165,17 +165,17 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "691:19:17", + "src": "691:19:19", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "functionReturnParameters": 26123, - "id": 26129, + "functionReturnParameters": 28102, + "id": 28108, "nodeType": "Return", - "src": "684:26:17" + "src": "684:26:19" } ] }, @@ -183,26 +183,26 @@ "kind": "function", "modifiers": [], "name": "_msgSender", - "nameLocation": "612:10:17", + "nameLocation": "612:10:19", "parameters": { - "id": 26120, + "id": 28099, "nodeType": "ParameterList", "parameters": [], - "src": "622:2:17" + "src": "622:2:19" }, "returnParameters": { - "id": 26123, + "id": 28102, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 26122, + "id": 28101, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 26131, - "src": "656:15:17", + "scope": 28110, + "src": "656:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -210,10 +210,10 @@ "typeString": "address payable" }, "typeName": { - "id": 26121, + "id": 28100, "name": "address", "nodeType": "ElementaryTypeName", - "src": "656:15:17", + "src": "656:15:19", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -223,73 +223,73 @@ "visibility": "internal" } ], - "src": "655:17:17" + "src": "655:17:19" }, - "scope": 26143, + "scope": 28122, "stateMutability": "view", "virtual": true, "visibility": "internal" }, { - "id": 26142, + "id": 28121, "nodeType": "FunctionDefinition", - "src": "726:233:17", + "src": "726:233:19", "nodes": [], "body": { - "id": 26141, + "id": 28120, "nodeType": "Block", - "src": "791:168:17", + "src": "791:168:19", "nodes": [], "statements": [ { "expression": { - "id": 26136, + "id": 28115, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "802:4:17", + "src": "802:4:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$26143", + "typeIdentifier": "t_contract$_Context_$28122", "typeString": "contract Context" } }, - "id": 26137, + "id": 28116, "nodeType": "ExpressionStatement", - "src": "802:4:17" + "src": "802:4:19" }, { "expression": { "expression": { - "id": 26138, + "id": 28117, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "943:3:17", + "src": "943:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 26139, + "id": 28118, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "947:4:17", + "memberLocation": "947:4:19", "memberName": "data", "nodeType": "MemberAccess", - "src": "943:8:17", + "src": "943:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "functionReturnParameters": 26135, - "id": 26140, + "functionReturnParameters": 28114, + "id": 28119, "nodeType": "Return", - "src": "936:15:17" + "src": "936:15:19" } ] }, @@ -297,26 +297,26 @@ "kind": "function", "modifiers": [], "name": "_msgData", - "nameLocation": "735:8:17", + "nameLocation": "735:8:19", "parameters": { - "id": 26132, + "id": 28111, "nodeType": "ParameterList", "parameters": [], - "src": "743:2:17" + "src": "743:2:19" }, "returnParameters": { - "id": 26135, + "id": 28114, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 26134, + "id": 28113, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 26142, - "src": "777:12:17", + "scope": 28121, + "src": "777:12:19", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -324,10 +324,10 @@ "typeString": "bytes" }, "typeName": { - "id": 26133, + "id": 28112, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "777:5:17", + "src": "777:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -336,9 +336,9 @@ "visibility": "internal" } ], - "src": "776:14:17" + "src": "776:14:19" }, - "scope": 26143, + "scope": 28122, "stateMutability": "view", "virtual": true, "visibility": "internal" @@ -351,15 +351,15 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 26143 + 28122 ], "name": "Context", - "nameLocation": "588:7:17", - "scope": 26144, + "nameLocation": "588:7:19", + "scope": 28123, "usedErrors": [] } ], "license": "MIT" }, - "id": 17 + "id": 19 } \ No newline at end of file diff --git a/out/Contract.s.sol/ContractScript.json b/out/Contract.s.sol/ContractScript.json index 0a2c68e..f07a543 100644 --- a/out/Contract.s.sol/ContractScript.json +++ b/out/Contract.s.sol/ContractScript.json @@ -35,7 +35,7 @@ }, "deployedBytecode": { "object": "0x6080604052348015600f57600080fd5b5060043610603c5760003560e01c80630a9254e4146041578063c0406226146043578063f8ccbf47146049575b600080fd5b005b60416069565b600c5460559060ff1681565b604051901515815260200160405180910390f35b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663afc980406040518163ffffffff1660e01b8152600401600060405180830381600087803b15801560c657600080fd5b505af115801560d9573d6000803e3d6000fd5b5050505056fea26469706673582212201269be7f9d04da86bbc6d612ed9f27b4b2501910ed9f0fe90ea0d27f762365bd64736f6c63430008110033", - "sourceMap": "102:133:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;143:26;;177:55;;;:::i;758:28:2:-;;;;;;;;;;;;179:14:23;;172:22;154:41;;142:2;127:18;758:28:2;;;;;;;177:55:15;317:28:1;309:37;;-1:-1:-1;;;;;210:12:15;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;177:55::o", + "sourceMap": "102:133:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;143:26;;177:55;;;:::i;758:28:2:-;;;;;;;;;;;;179:14:32;;172:22;154:41;;142:2;127:18;758:28:2;;;;;;;177:55:15;317:28:1;309:37;;-1:-1:-1;;;;;210:12:15;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;177:55::o", "linkReferences": {} }, "methodIdentifiers": { diff --git a/out/ERC20.sol/ERC20.json b/out/ERC20.sol/ERC20.json new file mode 100644 index 0000000..58817f5 --- /dev/null +++ b/out/ERC20.sol/ERC20.json @@ -0,0 +1,10908 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x60806040523480156200001157600080fd5b5060405162000b8e38038062000b8e83398101604081905262000034916200012c565b600362000042838262000225565b50600462000051828262000225565b50506005805460ff1916601217905550620002f1565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008f57600080fd5b81516001600160401b0380821115620000ac57620000ac62000067565b604051601f8301601f19908116603f01168101908282118183101715620000d757620000d762000067565b81604052838152602092508683858801011115620000f457600080fd5b600091505b83821015620001185785820183015181830184015290820190620000f9565b600093810190920192909252949350505050565b600080604083850312156200014057600080fd5b82516001600160401b03808211156200015857600080fd5b62000166868387016200007d565b935060208501519150808211156200017d57600080fd5b506200018c858286016200007d565b9150509250929050565b600181811c90821680620001ab57607f821691505b602082108103620001cc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200022057600081815260208120601f850160051c81016020861015620001fb5750805b601f850160051c820191505b818110156200021c5782815560010162000207565b5050505b505050565b81516001600160401b0381111562000241576200024162000067565b620002598162000252845462000196565b84620001d2565b602080601f831160018114620002915760008415620002785750858301515b600019600386901b1c1916600185901b1785556200021c565b600085815260208120601f198616915b82811015620002c257888601518255948401946001909101908401620002a1565b5085821015620002e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61088d80620003016000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012957806370a082311461013c57806395d89b4114610165578063a457c2d71461016d578063a9059cbb14610180578063dd62ed3e1461019357600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101cc565b6040516100c3919061066b565b60405180910390f35b6100df6100da3660046106d5565b61025e565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f3660046106ff565b610275565b60055460405160ff90911681526020016100c3565b6100df6101373660046106d5565b6102de565b6100f361014a36600461073b565b6001600160a01b031660009081526020819052604090205490565b6100b6610314565b6100df61017b3660046106d5565b610323565b6100df61018e3660046106d5565b610372565b6100f36101a1366004610756565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101db90610789565b80601f016020809104026020016040519081016040528092919081815260200182805461020790610789565b80156102545780601f1061022957610100808354040283529160200191610254565b820191906000526020600020905b81548152906001019060200180831161023757829003601f168201915b5050505050905090565b600061026b33848461037f565b5060015b92915050565b60006102828484846104a9565b6102d484336102cf8560405180606001604052806028815260200161080b602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061062c565b61037f565b5060019392505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161026b9185906102cf9086610658565b6060600480546101db90610789565b600061026b33846102cf85604051806060016040528060258152602001610833602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061062c565b600061026b3384846104a9565b6001600160a01b0383166103e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166104475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103dd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661050d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103dd565b6001600160a01b03821661056f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103dd565b6105ac816040518060600160405280602681526020016107e5602691396001600160a01b038616600090815260208190526040902054919061062c565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546105db9082610658565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161049c565b600081848411156106505760405162461bcd60e51b81526004016103dd919061066b565b505050900390565b600061066482846107c3565b9392505050565b600060208083528351808285015260005b818110156106985785810183015185820160400152820161067c565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146106d057600080fd5b919050565b600080604083850312156106e857600080fd5b6106f1836106b9565b946020939093013593505050565b60008060006060848603121561071457600080fd5b61071d846106b9565b925061072b602085016106b9565b9150604084013590509250925092565b60006020828403121561074d57600080fd5b610664826106b9565b6000806040838503121561076957600080fd5b610772836106b9565b9150610780602084016106b9565b90509250929050565b600181811c9082168061079d57607f821691505b6020821081036107bd57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561026f57634e487b7160e01b600052601160045260246000fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220216263053d8933afda34d25e1f3459dd95c7b19dd11e61fc67dfbfd59d9d865064736f6c63430008110033", + "sourceMap": "7736:9750:21:-:0;;;8395:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8463:5;:13;8471:5;8463;:13;:::i;:::-;-1:-1:-1;8487:7:21;:17;8497:7;8487;:17;:::i;:::-;-1:-1:-1;;8515:9:21;:14;;-1:-1:-1;;8515:14:21;8527:2;8515:14;;;-1:-1:-1;7736:9750:21;;14:127:32;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:32;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:32;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:32:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:32;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:32;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:32;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:32;;;3992:26;3943:89;-1:-1:-1;;2747:1:32;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:32;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:32;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:32;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:32:o;:::-;7736:9750:21;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012957806370a082311461013c57806395d89b4114610165578063a457c2d71461016d578063a9059cbb14610180578063dd62ed3e1461019357600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101cc565b6040516100c3919061066b565b60405180910390f35b6100df6100da3660046106d5565b61025e565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f3660046106ff565b610275565b60055460405160ff90911681526020016100c3565b6100df6101373660046106d5565b6102de565b6100f361014a36600461073b565b6001600160a01b031660009081526020819052604090205490565b6100b6610314565b6100df61017b3660046106d5565b610323565b6100df61018e3660046106d5565b610372565b6100f36101a1366004610756565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101db90610789565b80601f016020809104026020016040519081016040528092919081815260200182805461020790610789565b80156102545780601f1061022957610100808354040283529160200191610254565b820191906000526020600020905b81548152906001019060200180831161023757829003601f168201915b5050505050905090565b600061026b33848461037f565b5060015b92915050565b60006102828484846104a9565b6102d484336102cf8560405180606001604052806028815260200161080b602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061062c565b61037f565b5060019392505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161026b9185906102cf9086610658565b6060600480546101db90610789565b600061026b33846102cf85604051806060016040528060258152602001610833602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061062c565b600061026b3384846104a9565b6001600160a01b0383166103e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166104475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103dd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661050d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103dd565b6001600160a01b03821661056f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103dd565b6105ac816040518060600160405280602681526020016107e5602691396001600160a01b038616600090815260208190526040902054919061062c565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546105db9082610658565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161049c565b600081848411156106505760405162461bcd60e51b81526004016103dd919061066b565b505050900390565b600061066482846107c3565b9392505050565b600060208083528351808285015260005b818110156106985785810183015185820160400152820161067c565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146106d057600080fd5b919050565b600080604083850312156106e857600080fd5b6106f1836106b9565b946020939093013593505050565b60008060006060848603121561071457600080fd5b61071d846106b9565b925061072b602085016106b9565b9150604084013590509250925092565b60006020828403121561074d57600080fd5b610664826106b9565b6000806040838503121561076957600080fd5b610772836106b9565b9150610780602084016106b9565b90509250929050565b600181811c9082168061079d57607f821691505b6020821081036107bd57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561026f57634e487b7160e01b600052601160045260246000fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220216263053d8933afda34d25e1f3459dd95c7b19dd11e61fc67dfbfd59d9d865064736f6c63430008110033", + "sourceMap": "7736:9750:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8607:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10753:169;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:32;;1162:22;1144:41;;1132:2;1117:18;10753:169:21;1004:187:32;9706:108:21;9794:12;;9706:108;;;1342:25:32;;;1330:2;1315:18;9706:108:21;1196:177:32;11404:321:21;;;;;;:::i;:::-;;:::i;9550:91::-;9624:9;;9550:91;;9624:9;;;;1853:36:32;;1841:2;1826:18;9550:91:21;1711:184:32;12134:218:21;;;;;;:::i;:::-;;:::i;9877:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;9978:18:21;9951:7;9978:18;;;;;;;;;;;;9877:127;8817:95;;;:::i;12855:269::-;;;;;;:::i;:::-;;:::i;10217:175::-;;;;;;:::i;:::-;;:::i;10455:151::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10571:18:21;;;10544:7;10571:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10455:151;8607:91;8652:13;8685:5;8678:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8607:91;:::o;10753:169::-;10836:4;10853:39;699:10:19;10876:7:21;10885:6;10853:8;:39::i;:::-;-1:-1:-1;10910:4:21;10753:169;;;;;:::o;11404:321::-;11510:4;11527:36;11537:6;11545:9;11556:6;11527:9;:36::i;:::-;11574:121;11583:6;699:10:19;11605:89:21;11643:6;11605:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11605:19:21;;;;;;:11;:19;;;;;;;;699:10:19;11605:33:21;;;;;;;;;;:37;:89::i;:::-;11574:8;:121::i;:::-;-1:-1:-1;11713:4:21;11404:321;;;;;:::o;12134:218::-;699:10:19;12222:4:21;12271:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12271:34:21;;;;;;;;;;12222:4;;12239:83;;12262:7;;12271:50;;12310:10;12271:38;:50::i;8817:95::-;8864:13;8897:7;8890:14;;;;;:::i;12855:269::-;12948:4;12965:129;699:10:19;12988:7:21;12997:96;13036:15;12997:96;;;;;;;;;;;;;;;;;699:10:19;12997:25:21;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12997:34:21;;;;;;;;;;;;:38;:96::i;10217:175::-;10303:4;10320:42;699:10:19;10344:9:21;10355:6;10320:9;:42::i;16012:346::-;-1:-1:-1;;;;;16114:19:21;;16106:68;;;;-1:-1:-1;;;16106:68:21;;2943:2:32;16106:68:21;;;2925:21:32;2982:2;2962:18;;;2955:30;3021:34;3001:18;;;2994:62;-1:-1:-1;;;3072:18:32;;;3065:34;3116:19;;16106:68:21;;;;;;;;;-1:-1:-1;;;;;16193:21:21;;16185:68;;;;-1:-1:-1;;;16185:68:21;;3348:2:32;16185:68:21;;;3330:21:32;3387:2;3367:18;;;3360:30;3426:34;3406:18;;;3399:62;-1:-1:-1;;;3477:18:32;;;3470:32;3519:19;;16185:68:21;3146:398:32;16185:68:21;-1:-1:-1;;;;;16266:18:21;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16318:32;;1342:25:32;;;16318:32:21;;1315:18:32;16318:32:21;;;;;;;;16012:346;;;:::o;13614:549::-;-1:-1:-1;;;;;13720:20:21;;13712:70;;;;-1:-1:-1;;;13712:70:21;;3751:2:32;13712:70:21;;;3733:21:32;3790:2;3770:18;;;3763:30;3829:34;3809:18;;;3802:62;-1:-1:-1;;;3880:18:32;;;3873:35;3925:19;;13712:70:21;3549:401:32;13712:70:21;-1:-1:-1;;;;;13801:23:21;;13793:71;;;;-1:-1:-1;;;13793:71:21;;4157:2:32;13793:71:21;;;4139:21:32;4196:2;4176:18;;;4169:30;4235:34;4215:18;;;4208:62;-1:-1:-1;;;4286:18:32;;;4279:33;4329:19;;13793:71:21;3955:399:32;13793:71:21;13967;13989:6;13967:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13967:17:21;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;13947:17:21;;;:9;:17;;;;;;;;;;;:91;;;;14072:20;;;;;;;:32;;14097:6;14072:24;:32::i;:::-;-1:-1:-1;;;;;14049:20:21;;;:9;:20;;;;;;;;;;;;:55;;;;14120:35;1342:25:32;;;14049:20:21;;14120:35;;;;;;1315:18:32;14120:35:21;1196:177:32;4765:206:21;4851:7;4912:12;4904:6;;;;4896:29;;;;-1:-1:-1;;;4896:29:21;;;;;;;;:::i;:::-;-1:-1:-1;;;4947:5:21;;;4765:206::o;2486:98::-;2544:7;2571:5;2575:1;2571;:5;:::i;:::-;2564:12;2486:98;-1:-1:-1;;;2486:98:21:o;14:548:32:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:32;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:32:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;2091:260::-;2159:6;2167;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;2259:29;2278:9;2259:29;:::i;:::-;2249:39;;2307:38;2341:2;2330:9;2326:18;2307:38;:::i;:::-;2297:48;;2091:260;;;;;:::o;2356:380::-;2435:1;2431:12;;;;2478;;;2499:61;;2553:4;2545:6;2541:17;2531:27;;2499:61;2606:2;2598:6;2595:14;2575:18;2572:38;2569:161;;2652:10;2647:3;2643:20;2640:1;2633:31;2687:4;2684:1;2677:15;2715:4;2712:1;2705:15;2569:161;;2356:380;;;:::o;4359:222::-;4424:9;;;4445:10;;;4442:133;;;4497:10;4492:3;4488:20;4485:1;4478:31;4532:4;4529:1;4522:15;4560:4;4557:1;4550:15", + "linkReferences": {} + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "decreaseAllowance(address,uint256)": "a457c2d7", + "increaseAllowance(address,uint256)": "39509351", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}, initializes {decimals} with a default value of 18. To select a different value for {decimals}, use {_setupDecimals}. All three of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/extensions/Context.sol\":{\"keccak256\":\"0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12\",\"dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV\"]},\"src/interfaces/ERC20.sol\":{\"keccak256\":\"0x66faf9d1ffb72b9815ca0361cc51dcee221d71bf77d1fbc333764ec45ba4625d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b8e9fa1d14f1f05c268ea595f8f17b6e7a600b050ca5b28b18cce98a18500bd\",\"dweb:/ipfs/Qmdi66SsYxDycpGFRtJZ2eJy5znGp6JKwGsHd4BEkWswka\"]},\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be\",\"dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "spender", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Approval", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Transfer", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "allowance(address,address)": { + "details": "See {IERC20-allowance}." + }, + "approve(address,uint256)": { + "details": "See {IERC20-approve}. Requirements: - `spender` cannot be the zero address." + }, + "balanceOf(address)": { + "details": "See {IERC20-balanceOf}." + }, + "constructor": { + "details": "Sets the values for {name} and {symbol}, initializes {decimals} with a default value of 18. To select a different value for {decimals}, use {_setupDecimals}. All three of these values are immutable: they can only be set once during construction." + }, + "decimals()": { + "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}." + }, + "decreaseAllowance(address,uint256)": { + "details": "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`." + }, + "increaseAllowance(address,uint256)": { + "details": "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address." + }, + "name()": { + "details": "Returns the name of the token." + }, + "symbol()": { + "details": "Returns the symbol of the token, usually a shorter version of the name." + }, + "totalSupply()": { + "details": "See {IERC20-totalSupply}." + }, + "transfer(address,uint256)": { + "details": "See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`." + }, + "transferFrom(address,address,uint256)": { + "details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/interfaces/ERC20.sol": "ERC20" + }, + "libraries": {} + }, + "sources": { + "src/extensions/Context.sol": { + "keccak256": "0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016", + "urls": [ + "bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12", + "dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV" + ], + "license": "MIT" + }, + "src/interfaces/ERC20.sol": { + "keccak256": "0x66faf9d1ffb72b9815ca0361cc51dcee221d71bf77d1fbc333764ec45ba4625d", + "urls": [ + "bzz-raw://7b8e9fa1d14f1f05c268ea595f8f17b6e7a600b050ca5b28b18cce98a18500bd", + "dweb:/ipfs/Qmdi66SsYxDycpGFRtJZ2eJy5znGp6JKwGsHd4BEkWswka" + ], + "license": "GPL-3.0-or-later" + }, + "src/interfaces/IERC20.sol": { + "keccak256": "0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f", + "urls": [ + "bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be", + "dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA" + ], + "license": "GPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/interfaces/ERC20.sol", + "id": 29082, + "exportedSymbols": { + "Context": [ + 28122 + ], + "ERC20": [ + 29081 + ], + "IERC20": [ + 29158 + ], + "IERC20Extended": [ + 29166 + ], + "SafeMath": [ + 28583 + ] + }, + "nodeType": "SourceUnit", + "src": "46:17440:21", + "nodes": [ + { + "id": 28272, + "nodeType": "PragmaDirective", + "src": "46:23:21", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ] + }, + { + "id": 28273, + "nodeType": "ImportDirective", + "src": "73:35:21", + "nodes": [], + "absolutePath": "src/extensions/Context.sol", + "file": "../extensions/Context.sol", + "nameLocation": "-1:-1:-1", + "scope": 29082, + "sourceUnit": 28123, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 28274, + "nodeType": "ImportDirective", + "src": "110:22:21", + "nodes": [], + "absolutePath": "src/interfaces/IERC20.sol", + "file": "./IERC20.sol", + "nameLocation": "-1:-1:-1", + "scope": 29082, + "sourceUnit": 29167, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 28583, + "nodeType": "ContractDefinition", + "src": "136:6409:21", + "nodes": [ + { + "id": 28306, + "nodeType": "FunctionDefinition", + "src": "301:222:21", + "nodes": [], + "body": { + "id": 28305, + "nodeType": "Block", + "src": "377:146:21", + "nodes": [], + "statements": [ + { + "id": 28304, + "nodeType": "UncheckedBlock", + "src": "388:128:21", + "statements": [ + { + "assignments": [ + 28287 + ], + "declarations": [ + { + "constant": false, + "id": 28287, + "mutability": "mutable", + "name": "c", + "nameLocation": "421:1:21", + "nodeType": "VariableDeclaration", + "scope": 28304, + "src": "413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28286, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28291, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28288, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28277, + "src": "425:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 28289, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28279, + "src": "429:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "425:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "413:17:21" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28292, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28287, + "src": "449:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 28293, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28277, + "src": "453:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "449:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28299, + "nodeType": "IfStatement", + "src": "445:28:21", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 28295, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "464:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 28296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "471:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 28297, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "463:10:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 28285, + "id": 28298, + "nodeType": "Return", + "src": "456:17:21" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 28300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "496:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 28301, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28287, + "src": "502:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28302, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 28285, + "id": 28303, + "nodeType": "Return", + "src": "488:16:21" + } + ] + } + ] + }, + "documentation": { + "id": 28275, + "nodeType": "StructuredDocumentation", + "src": "160:135:21", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nameLocation": "310:6:21", + "parameters": { + "id": 28280, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28277, + "mutability": "mutable", + "name": "a", + "nameLocation": "325:1:21", + "nodeType": "VariableDeclaration", + "scope": 28306, + "src": "317:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28276, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "317:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28279, + "mutability": "mutable", + "name": "b", + "nameLocation": "336:1:21", + "nodeType": "VariableDeclaration", + "scope": 28306, + "src": "328:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "328:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "316:22:21" + }, + "returnParameters": { + "id": 28285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28282, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28306, + "src": "362:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28281, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "362:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28284, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28306, + "src": "368:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28283, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "361:15:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28334, + "nodeType": "FunctionDefinition", + "src": "675:194:21", + "nodes": [], + "body": { + "id": 28333, + "nodeType": "Block", + "src": "751:118:21", + "nodes": [], + "statements": [ + { + "id": 28332, + "nodeType": "UncheckedBlock", + "src": "762:100:21", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28318, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28311, + "src": "791:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 28319, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28309, + "src": "795:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "791:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28325, + "nodeType": "IfStatement", + "src": "787:28:21", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 28321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "806:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 28322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "813:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 28323, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 28317, + "id": 28324, + "nodeType": "Return", + "src": "798:17:21" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 28326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "838:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28327, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28309, + "src": "844:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 28328, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28311, + "src": "848:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "844:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28330, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "837:13:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 28317, + "id": 28331, + "nodeType": "Return", + "src": "830:20:21" + } + ] + } + ] + }, + "documentation": { + "id": 28307, + "nodeType": "StructuredDocumentation", + "src": "531:138:21", + "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nameLocation": "684:6:21", + "parameters": { + "id": 28312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28309, + "mutability": "mutable", + "name": "a", + "nameLocation": "699:1:21", + "nodeType": "VariableDeclaration", + "scope": 28334, + "src": "691:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "691:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28311, + "mutability": "mutable", + "name": "b", + "nameLocation": "710:1:21", + "nodeType": "VariableDeclaration", + "scope": 28334, + "src": "702:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "702:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "690:22:21" + }, + "returnParameters": { + "id": 28317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28314, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28334, + "src": "736:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "736:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28316, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28334, + "src": "742:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "742:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "735:15:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28376, + "nodeType": "FunctionDefinition", + "src": "1024:503:21", + "nodes": [], + "body": { + "id": 28375, + "nodeType": "Block", + "src": "1100:427:21", + "nodes": [], + "statements": [ + { + "id": 28374, + "nodeType": "UncheckedBlock", + "src": "1111:409:21", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28346, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28337, + "src": "1373:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 28347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1378:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1373:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28353, + "nodeType": "IfStatement", + "src": "1369:28:21", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 28349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1389:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 28350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1395:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 28351, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1388:9:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 28345, + "id": 28352, + "nodeType": "Return", + "src": "1381:16:21" + } + }, + { + "assignments": [ + 28355 + ], + "declarations": [ + { + "constant": false, + "id": 28355, + "mutability": "mutable", + "name": "c", + "nameLocation": "1420:1:21", + "nodeType": "VariableDeclaration", + "scope": 28374, + "src": "1412:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28354, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28359, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28356, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28337, + "src": "1424:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 28357, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28339, + "src": "1428:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1424:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1412:17:21" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28360, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28355, + "src": "1448:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 28361, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28337, + "src": "1452:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1448:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 28363, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28339, + "src": "1457:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1448:10:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28369, + "nodeType": "IfStatement", + "src": "1444:33:21", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 28365, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1468:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 28366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1475:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 28367, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1467:10:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 28345, + "id": 28368, + "nodeType": "Return", + "src": "1460:17:21" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 28370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1500:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 28371, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28355, + "src": "1506:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28372, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1499:9:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 28345, + "id": 28373, + "nodeType": "Return", + "src": "1492:16:21" + } + ] + } + ] + }, + "documentation": { + "id": 28335, + "nodeType": "StructuredDocumentation", + "src": "877:141:21", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nameLocation": "1033:6:21", + "parameters": { + "id": 28340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28337, + "mutability": "mutable", + "name": "a", + "nameLocation": "1048:1:21", + "nodeType": "VariableDeclaration", + "scope": 28376, + "src": "1040:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1040:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28339, + "mutability": "mutable", + "name": "b", + "nameLocation": "1059:1:21", + "nodeType": "VariableDeclaration", + "scope": 28376, + "src": "1051:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1051:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1039:22:21" + }, + "returnParameters": { + "id": 28345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28342, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28376, + "src": "1085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28341, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28344, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28376, + "src": "1091:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1084:15:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28404, + "nodeType": "FunctionDefinition", + "src": "1683:195:21", + "nodes": [], + "body": { + "id": 28403, + "nodeType": "Block", + "src": "1759:119:21", + "nodes": [], + "statements": [ + { + "id": 28402, + "nodeType": "UncheckedBlock", + "src": "1770:101:21", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28388, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28381, + "src": "1799:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 28389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1804:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1799:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28395, + "nodeType": "IfStatement", + "src": "1795:29:21", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 28391, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1815:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 28392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1822:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 28393, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1814:10:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 28387, + "id": 28394, + "nodeType": "Return", + "src": "1807:17:21" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 28396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1847:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28397, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28379, + "src": "1853:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 28398, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28381, + "src": "1857:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1853:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28400, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1846:13:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 28387, + "id": 28401, + "nodeType": "Return", + "src": "1839:20:21" + } + ] + } + ] + }, + "documentation": { + "id": 28377, + "nodeType": "StructuredDocumentation", + "src": "1535:142:21", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nameLocation": "1692:6:21", + "parameters": { + "id": 28382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28379, + "mutability": "mutable", + "name": "a", + "nameLocation": "1707:1:21", + "nodeType": "VariableDeclaration", + "scope": 28404, + "src": "1699:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28378, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1699:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28381, + "mutability": "mutable", + "name": "b", + "nameLocation": "1718:1:21", + "nodeType": "VariableDeclaration", + "scope": 28404, + "src": "1710:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28380, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1710:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1698:22:21" + }, + "returnParameters": { + "id": 28387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28384, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28404, + "src": "1744:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1744:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28386, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28404, + "src": "1750:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1750:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1743:15:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28432, + "nodeType": "FunctionDefinition", + "src": "2044:195:21", + "nodes": [], + "body": { + "id": 28431, + "nodeType": "Block", + "src": "2120:119:21", + "nodes": [], + "statements": [ + { + "id": 28430, + "nodeType": "UncheckedBlock", + "src": "2131:101:21", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28416, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28409, + "src": "2160:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 28417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2165:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2160:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28423, + "nodeType": "IfStatement", + "src": "2156:29:21", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 28419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2176:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 28420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2183:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 28421, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2175:10:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 28415, + "id": 28422, + "nodeType": "Return", + "src": "2168:17:21" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 28424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28425, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28407, + "src": "2214:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 28426, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28409, + "src": "2218:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2214:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28428, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2207:13:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 28415, + "id": 28429, + "nodeType": "Return", + "src": "2200:20:21" + } + ] + } + ] + }, + "documentation": { + "id": 28405, + "nodeType": "StructuredDocumentation", + "src": "1886:152:21", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "2053:6:21", + "parameters": { + "id": 28410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28407, + "mutability": "mutable", + "name": "a", + "nameLocation": "2068:1:21", + "nodeType": "VariableDeclaration", + "scope": 28432, + "src": "2060:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28406, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2060:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28409, + "mutability": "mutable", + "name": "b", + "nameLocation": "2079:1:21", + "nodeType": "VariableDeclaration", + "scope": 28432, + "src": "2071:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28408, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2071:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2059:22:21" + }, + "returnParameters": { + "id": 28415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28412, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28432, + "src": "2105:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28411, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2105:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28414, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28432, + "src": "2111:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28413, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2104:15:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28447, + "nodeType": "FunctionDefinition", + "src": "2486:98:21", + "nodes": [], + "body": { + "id": 28446, + "nodeType": "Block", + "src": "2553:31:21", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28442, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28435, + "src": "2571:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 28443, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28437, + "src": "2575:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2571:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28441, + "id": 28445, + "nodeType": "Return", + "src": "2564:12:21" + } + ] + }, + "documentation": { + "id": 28433, + "nodeType": "StructuredDocumentation", + "src": "2247:233:21", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nameLocation": "2495:3:21", + "parameters": { + "id": 28438, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28435, + "mutability": "mutable", + "name": "a", + "nameLocation": "2507:1:21", + "nodeType": "VariableDeclaration", + "scope": 28447, + "src": "2499:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28434, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2499:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28437, + "mutability": "mutable", + "name": "b", + "nameLocation": "2518:1:21", + "nodeType": "VariableDeclaration", + "scope": 28447, + "src": "2510:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28436, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2510:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2498:22:21" + }, + "returnParameters": { + "id": 28441, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28440, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28447, + "src": "2544:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28439, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2543:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28462, + "nodeType": "FunctionDefinition", + "src": "2867:98:21", + "nodes": [], + "body": { + "id": 28461, + "nodeType": "Block", + "src": "2934:31:21", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28457, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28450, + "src": "2952:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 28458, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28452, + "src": "2956:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2952:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28456, + "id": 28460, + "nodeType": "Return", + "src": "2945:12:21" + } + ] + }, + "documentation": { + "id": 28448, + "nodeType": "StructuredDocumentation", + "src": "2592:269:21", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nameLocation": "2876:3:21", + "parameters": { + "id": 28453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28450, + "mutability": "mutable", + "name": "a", + "nameLocation": "2888:1:21", + "nodeType": "VariableDeclaration", + "scope": 28462, + "src": "2880:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28449, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2880:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28452, + "mutability": "mutable", + "name": "b", + "nameLocation": "2899:1:21", + "nodeType": "VariableDeclaration", + "scope": 28462, + "src": "2891:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2879:22:21" + }, + "returnParameters": { + "id": 28456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28455, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28462, + "src": "2925:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2924:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28477, + "nodeType": "FunctionDefinition", + "src": "3224:98:21", + "nodes": [], + "body": { + "id": 28476, + "nodeType": "Block", + "src": "3291:31:21", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28472, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28465, + "src": "3309:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 28473, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28467, + "src": "3313:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3309:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28471, + "id": 28475, + "nodeType": "Return", + "src": "3302:12:21" + } + ] + }, + "documentation": { + "id": 28463, + "nodeType": "StructuredDocumentation", + "src": "2973:245:21", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nameLocation": "3233:3:21", + "parameters": { + "id": 28468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28465, + "mutability": "mutable", + "name": "a", + "nameLocation": "3245:1:21", + "nodeType": "VariableDeclaration", + "scope": 28477, + "src": "3237:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3237:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28467, + "mutability": "mutable", + "name": "b", + "nameLocation": "3256:1:21", + "nodeType": "VariableDeclaration", + "scope": 28477, + "src": "3248:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3236:22:21" + }, + "returnParameters": { + "id": 28471, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28470, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28477, + "src": "3282:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28469, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3282:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3281:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28492, + "nodeType": "FunctionDefinition", + "src": "3623:98:21", + "nodes": [], + "body": { + "id": 28491, + "nodeType": "Block", + "src": "3690:31:21", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28487, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28480, + "src": "3708:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 28488, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28482, + "src": "3712:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28486, + "id": 28490, + "nodeType": "Return", + "src": "3701:12:21" + } + ] + }, + "documentation": { + "id": 28478, + "nodeType": "StructuredDocumentation", + "src": "3330:287:21", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator.\n Requirements:\n - The divisor cannot be zero." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nameLocation": "3632:3:21", + "parameters": { + "id": 28483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28480, + "mutability": "mutable", + "name": "a", + "nameLocation": "3644:1:21", + "nodeType": "VariableDeclaration", + "scope": 28492, + "src": "3636:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28479, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3636:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28482, + "mutability": "mutable", + "name": "b", + "nameLocation": "3655:1:21", + "nodeType": "VariableDeclaration", + "scope": 28492, + "src": "3647:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28481, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3647:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3635:22:21" + }, + "returnParameters": { + "id": 28486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28485, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28492, + "src": "3681:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3680:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28507, + "nodeType": "FunctionDefinition", + "src": "4188:98:21", + "nodes": [], + "body": { + "id": 28506, + "nodeType": "Block", + "src": "4255:31:21", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28502, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28495, + "src": "4273:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 28503, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28497, + "src": "4277:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4273:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28501, + "id": 28505, + "nodeType": "Return", + "src": "4266:12:21" + } + ] + }, + "documentation": { + "id": 28493, + "nodeType": "StructuredDocumentation", + "src": "3729:453:21", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nameLocation": "4197:3:21", + "parameters": { + "id": 28498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28495, + "mutability": "mutable", + "name": "a", + "nameLocation": "4209:1:21", + "nodeType": "VariableDeclaration", + "scope": 28507, + "src": "4201:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4201:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28497, + "mutability": "mutable", + "name": "b", + "nameLocation": "4220:1:21", + "nodeType": "VariableDeclaration", + "scope": 28507, + "src": "4212:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28496, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4212:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4200:22:21" + }, + "returnParameters": { + "id": 28501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28500, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28507, + "src": "4246:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4246:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4245:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28532, + "nodeType": "FunctionDefinition", + "src": "4765:206:21", + "nodes": [], + "body": { + "id": 28531, + "nodeType": "Block", + "src": "4860:111:21", + "nodes": [], + "statements": [ + { + "id": 28530, + "nodeType": "UncheckedBlock", + "src": "4871:93:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28520, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28512, + "src": "4904:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 28521, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28510, + "src": "4909:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4904:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 28523, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28514, + "src": "4912:12:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 28519, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4896:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4896:29:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28525, + "nodeType": "ExpressionStatement", + "src": "4896:29:21" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28526, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28510, + "src": "4947:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 28527, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28512, + "src": "4951:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4947:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28518, + "id": 28529, + "nodeType": "Return", + "src": "4940:12:21" + } + ] + } + ] + }, + "documentation": { + "id": 28508, + "nodeType": "StructuredDocumentation", + "src": "4294:465:21", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nameLocation": "4774:3:21", + "parameters": { + "id": 28515, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28510, + "mutability": "mutable", + "name": "a", + "nameLocation": "4786:1:21", + "nodeType": "VariableDeclaration", + "scope": 28532, + "src": "4778:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28509, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4778:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28512, + "mutability": "mutable", + "name": "b", + "nameLocation": "4797:1:21", + "nodeType": "VariableDeclaration", + "scope": 28532, + "src": "4789:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28514, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "4814:12:21", + "nodeType": "VariableDeclaration", + "scope": 28532, + "src": "4800:26:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28513, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4777:50:21" + }, + "returnParameters": { + "id": 28518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28517, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28532, + "src": "4851:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4851:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4850:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28557, + "nodeType": "FunctionDefinition", + "src": "5469:205:21", + "nodes": [], + "body": { + "id": 28556, + "nodeType": "Block", + "src": "5564:110:21", + "nodes": [], + "statements": [ + { + "id": 28555, + "nodeType": "UncheckedBlock", + "src": "5575:92:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28545, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "5608:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5612:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5608:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 28548, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28539, + "src": "5615:12:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 28544, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5600:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5600:28:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28550, + "nodeType": "ExpressionStatement", + "src": "5600:28:21" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28551, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28535, + "src": "5650:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 28552, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "5654:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5650:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28543, + "id": 28554, + "nodeType": "Return", + "src": "5643:12:21" + } + ] + } + ] + }, + "documentation": { + "id": 28533, + "nodeType": "StructuredDocumentation", + "src": "4979:484:21", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nameLocation": "5478:3:21", + "parameters": { + "id": 28540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28535, + "mutability": "mutable", + "name": "a", + "nameLocation": "5490:1:21", + "nodeType": "VariableDeclaration", + "scope": 28557, + "src": "5482:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5482:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28537, + "mutability": "mutable", + "name": "b", + "nameLocation": "5501:1:21", + "nodeType": "VariableDeclaration", + "scope": 28557, + "src": "5493:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28539, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "5518:12:21", + "nodeType": "VariableDeclaration", + "scope": 28557, + "src": "5504:26:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28538, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5504:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5481:50:21" + }, + "returnParameters": { + "id": 28543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28542, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28557, + "src": "5555:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28541, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5555:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5554:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28582, + "nodeType": "FunctionDefinition", + "src": "6337:205:21", + "nodes": [], + "body": { + "id": 28581, + "nodeType": "Block", + "src": "6432:110:21", + "nodes": [], + "statements": [ + { + "id": 28580, + "nodeType": "UncheckedBlock", + "src": "6443:92:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28570, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28562, + "src": "6476:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6480:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6476:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 28573, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28564, + "src": "6483:12:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 28569, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6468:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6468:28:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28575, + "nodeType": "ExpressionStatement", + "src": "6468:28:21" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28576, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28560, + "src": "6518:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 28577, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28562, + "src": "6522:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6518:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28568, + "id": 28579, + "nodeType": "Return", + "src": "6511:12:21" + } + ] + } + ] + }, + "documentation": { + "id": 28558, + "nodeType": "StructuredDocumentation", + "src": "5682:649:21", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nameLocation": "6346:3:21", + "parameters": { + "id": 28565, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28560, + "mutability": "mutable", + "name": "a", + "nameLocation": "6358:1:21", + "nodeType": "VariableDeclaration", + "scope": 28582, + "src": "6350:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28559, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28562, + "mutability": "mutable", + "name": "b", + "nameLocation": "6369:1:21", + "nodeType": "VariableDeclaration", + "scope": 28582, + "src": "6361:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28564, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "6386:12:21", + "nodeType": "VariableDeclaration", + "scope": 28582, + "src": "6372:26:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28563, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6372:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6349:50:21" + }, + "returnParameters": { + "id": 28568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28567, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28582, + "src": "6423:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6423:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6422:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "SafeMath", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 28583 + ], + "name": "SafeMath", + "nameLocation": "144:8:21", + "scope": 29082, + "usedErrors": [] + }, + { + "id": 29081, + "nodeType": "ContractDefinition", + "src": "7736:9750:21", + "nodes": [ + { + "id": 28591, + "nodeType": "UsingForDirective", + "src": "7777:27:21", + "nodes": [], + "global": false, + "libraryName": { + "id": 28589, + "name": "SafeMath", + "nameLocations": [ + "7783:8:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28583, + "src": "7783:8:21" + }, + "typeName": { + "id": 28590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7796:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 28595, + "nodeType": "VariableDeclaration", + "src": "7812:46:21", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "7849:9:21", + "scope": 29081, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 28594, + "keyType": { + "id": 28592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7821:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "7812:28:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 28593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7832:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "id": 28601, + "nodeType": "VariableDeclaration", + "src": "7867:69:21", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_allowances", + "nameLocation": "7925:11:21", + "scope": 29081, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 28600, + "keyType": { + "id": 28596, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7876:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "7867:49:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 28599, + "keyType": { + "id": 28597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7896:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "7887:28:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 28598, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7907:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "id": 28603, + "nodeType": "VariableDeclaration", + "src": "7945:28:21", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "7961:12:21", + "scope": 29081, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28602, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7945:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "id": 28605, + "nodeType": "VariableDeclaration", + "src": "7982:20:21", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_name", + "nameLocation": "7997:5:21", + "scope": 29081, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 28604, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7982:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "id": 28607, + "nodeType": "VariableDeclaration", + "src": "8009:22:21", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "8024:7:21", + "scope": 29081, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 28606, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8009:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "id": 28609, + "nodeType": "VariableDeclaration", + "src": "8038:23:21", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_decimals", + "nameLocation": "8052:9:21", + "scope": 29081, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 28608, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "8038:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "private" + }, + { + "id": 28630, + "nodeType": "FunctionDefinition", + "src": "8395:142:21", + "nodes": [], + "body": { + "id": 28629, + "nodeType": "Block", + "src": "8452:85:21", + "nodes": [], + "statements": [ + { + "expression": { + "id": 28619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28617, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28605, + "src": "8463:5:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28618, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "8471:5:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "8463:13:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 28620, + "nodeType": "ExpressionStatement", + "src": "8463:13:21" + }, + { + "expression": { + "id": 28623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28621, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28607, + "src": "8487:7:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28622, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28614, + "src": "8497:7:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "8487:17:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 28624, + "nodeType": "ExpressionStatement", + "src": "8487:17:21" + }, + { + "expression": { + "id": 28627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28625, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28609, + "src": "8515:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3138", + "id": 28626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "8515:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 28628, + "nodeType": "ExpressionStatement", + "src": "8515:14:21" + } + ] + }, + "documentation": { + "id": 28610, + "nodeType": "StructuredDocumentation", + "src": "8070:319:21", + "text": " @dev Sets the values for {name} and {symbol}, initializes {decimals} with\n a default value of 18.\n To select a different value for {decimals}, use {_setupDecimals}.\n All three of these values are immutable: they can only be set once during\n construction." + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 28615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28612, + "mutability": "mutable", + "name": "name_", + "nameLocation": "8422:5:21", + "nodeType": "VariableDeclaration", + "scope": 28630, + "src": "8408:19:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28611, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28614, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "8443:7:21", + "nodeType": "VariableDeclaration", + "scope": 28630, + "src": "8429:21:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8429:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8407:44:21" + }, + "returnParameters": { + "id": 28616, + "nodeType": "ParameterList", + "parameters": [], + "src": "8452:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 28639, + "nodeType": "FunctionDefinition", + "src": "8607:91:21", + "nodes": [], + "body": { + "id": 28638, + "nodeType": "Block", + "src": "8667:31:21", + "nodes": [], + "statements": [ + { + "expression": { + "id": 28636, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28605, + "src": "8685:5:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 28635, + "id": 28637, + "nodeType": "Return", + "src": "8678:12:21" + } + ] + }, + "documentation": { + "id": 28631, + "nodeType": "StructuredDocumentation", + "src": "8545:56:21", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "8616:4:21", + "parameters": { + "id": 28632, + "nodeType": "ParameterList", + "parameters": [], + "src": "8620:2:21" + }, + "returnParameters": { + "id": 28635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28634, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28639, + "src": "8652:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8652:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8651:15:21" + }, + "scope": 29081, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 28648, + "nodeType": "FunctionDefinition", + "src": "8817:95:21", + "nodes": [], + "body": { + "id": 28647, + "nodeType": "Block", + "src": "8879:33:21", + "nodes": [], + "statements": [ + { + "expression": { + "id": 28645, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28607, + "src": "8897:7:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 28644, + "id": 28646, + "nodeType": "Return", + "src": "8890:14:21" + } + ] + }, + "documentation": { + "id": 28640, + "nodeType": "StructuredDocumentation", + "src": "8706:105:21", + "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." + }, + "functionSelector": "95d89b41", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "8826:6:21", + "parameters": { + "id": 28641, + "nodeType": "ParameterList", + "parameters": [], + "src": "8832:2:21" + }, + "returnParameters": { + "id": 28644, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28643, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28648, + "src": "8864:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28642, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8864:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8863:15:21" + }, + "scope": 29081, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 28657, + "nodeType": "FunctionDefinition", + "src": "9550:91:21", + "nodes": [], + "body": { + "id": 28656, + "nodeType": "Block", + "src": "9606:35:21", + "nodes": [], + "statements": [ + { + "expression": { + "id": 28654, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28609, + "src": "9624:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 28653, + "id": 28655, + "nodeType": "Return", + "src": "9617:16:21" + } + ] + }, + "documentation": { + "id": 28649, + "nodeType": "StructuredDocumentation", + "src": "8920:624:21", + "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5,05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n called.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." + }, + "functionSelector": "313ce567", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "9559:8:21", + "parameters": { + "id": 28650, + "nodeType": "ParameterList", + "parameters": [], + "src": "9567:2:21" + }, + "returnParameters": { + "id": 28653, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28652, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28657, + "src": "9599:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 28651, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9599:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "9598:7:21" + }, + "scope": 29081, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 28667, + "nodeType": "FunctionDefinition", + "src": "9706:108:21", + "nodes": [], + "body": { + "id": 28666, + "nodeType": "Block", + "src": "9776:38:21", + "nodes": [], + "statements": [ + { + "expression": { + "id": 28664, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28603, + "src": "9794:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28663, + "id": 28665, + "nodeType": "Return", + "src": "9787:19:21" + } + ] + }, + "baseFunctions": [ + 29089 + ], + "documentation": { + "id": 28658, + "nodeType": "StructuredDocumentation", + "src": "9649:51:21", + "text": " @dev See {IERC20-totalSupply}." + }, + "functionSelector": "18160ddd", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "9715:11:21", + "overrides": { + "id": 28660, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9749:8:21" + }, + "parameters": { + "id": 28659, + "nodeType": "ParameterList", + "parameters": [], + "src": "9726:2:21" + }, + "returnParameters": { + "id": 28663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28662, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28667, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 29081, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 28681, + "nodeType": "FunctionDefinition", + "src": "9877:127:21", + "nodes": [], + "body": { + "id": 28680, + "nodeType": "Block", + "src": "9960:44:21", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "id": 28676, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "9978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28678, + "indexExpression": { + "id": 28677, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28670, + "src": "9988:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9978:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28675, + "id": 28679, + "nodeType": "Return", + "src": "9971:25:21" + } + ] + }, + "baseFunctions": [ + 29097 + ], + "documentation": { + "id": 28668, + "nodeType": "StructuredDocumentation", + "src": "9822:49:21", + "text": " @dev See {IERC20-balanceOf}." + }, + "functionSelector": "70a08231", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "9886:9:21", + "overrides": { + "id": 28672, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9933:8:21" + }, + "parameters": { + "id": 28671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28670, + "mutability": "mutable", + "name": "account", + "nameLocation": "9904:7:21", + "nodeType": "VariableDeclaration", + "scope": 28681, + "src": "9896:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28669, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9896:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9895:17:21" + }, + "returnParameters": { + "id": 28675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28674, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28681, + "src": "9951:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9951:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9950:9:21" + }, + "scope": 29081, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 28702, + "nodeType": "FunctionDefinition", + "src": "10217:175:21", + "nodes": [], + "body": { + "id": 28701, + "nodeType": "Block", + "src": "10309:83:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28693, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "10330:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10330:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 28695, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28684, + "src": "10344:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28696, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28686, + "src": "10355:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28692, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28902, + "src": "10320:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10320:42:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28698, + "nodeType": "ExpressionStatement", + "src": "10320:42:21" + }, + { + "expression": { + "hexValue": "74727565", + "id": 28699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10380:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 28691, + "id": 28700, + "nodeType": "Return", + "src": "10373:11:21" + } + ] + }, + "baseFunctions": [ + 29107 + ], + "documentation": { + "id": 28682, + "nodeType": "StructuredDocumentation", + "src": "10012:199:21", + "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `recipient` cannot be the zero address.\n - the caller must have a balance of at least `amount`." + }, + "functionSelector": "a9059cbb", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "10226:8:21", + "overrides": { + "id": 28688, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "10285:8:21" + }, + "parameters": { + "id": 28687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28684, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "10243:9:21", + "nodeType": "VariableDeclaration", + "scope": 28702, + "src": "10235:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28683, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10235:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28686, + "mutability": "mutable", + "name": "amount", + "nameLocation": "10262:6:21", + "nodeType": "VariableDeclaration", + "scope": 28702, + "src": "10254:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10234:35:21" + }, + "returnParameters": { + "id": 28691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28690, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28702, + "src": "10303:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28689, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10303:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "10302:6:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 28720, + "nodeType": "FunctionDefinition", + "src": "10455:151:21", + "nodes": [], + "body": { + "id": 28719, + "nodeType": "Block", + "src": "10553:53:21", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 28713, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28601, + "src": "10571:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 28715, + "indexExpression": { + "id": 28714, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28705, + "src": "10583:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10571:18:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28717, + "indexExpression": { + "id": 28716, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28707, + "src": "10590:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10571:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28712, + "id": 28718, + "nodeType": "Return", + "src": "10564:34:21" + } + ] + }, + "baseFunctions": [ + 29117 + ], + "documentation": { + "id": 28703, + "nodeType": "StructuredDocumentation", + "src": "10400:49:21", + "text": " @dev See {IERC20-allowance}." + }, + "functionSelector": "dd62ed3e", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "10464:9:21", + "overrides": { + "id": 28709, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "10526:8:21" + }, + "parameters": { + "id": 28708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28705, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10482:5:21", + "nodeType": "VariableDeclaration", + "scope": 28720, + "src": "10474:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10474:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28707, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10497:7:21", + "nodeType": "VariableDeclaration", + "scope": 28720, + "src": "10489:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10489:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "10473:32:21" + }, + "returnParameters": { + "id": 28712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28711, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28720, + "src": "10544:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10543:9:21" + }, + "scope": 29081, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 28741, + "nodeType": "FunctionDefinition", + "src": "10753:169:21", + "nodes": [], + "body": { + "id": 28740, + "nodeType": "Block", + "src": "10842:80:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28732, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "10862:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10862:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 28734, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28723, + "src": "10876:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28735, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28725, + "src": "10885:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28731, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29058, + "src": "10853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10853:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28737, + "nodeType": "ExpressionStatement", + "src": "10853:39:21" + }, + { + "expression": { + "hexValue": "74727565", + "id": 28738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10910:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 28730, + "id": 28739, + "nodeType": "Return", + "src": "10903:11:21" + } + ] + }, + "baseFunctions": [ + 29127 + ], + "documentation": { + "id": 28721, + "nodeType": "StructuredDocumentation", + "src": "10614:133:21", + "text": " @dev See {IERC20-approve}.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "095ea7b3", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "10762:7:21", + "overrides": { + "id": 28727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "10818:8:21" + }, + "parameters": { + "id": 28726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28723, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10778:7:21", + "nodeType": "VariableDeclaration", + "scope": 28741, + "src": "10770:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10770:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28725, + "mutability": "mutable", + "name": "amount", + "nameLocation": "10795:6:21", + "nodeType": "VariableDeclaration", + "scope": 28741, + "src": "10787:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10787:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10769:33:21" + }, + "returnParameters": { + "id": 28730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28729, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28741, + "src": "10836:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28728, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10836:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "10835:6:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 28779, + "nodeType": "FunctionDefinition", + "src": "11404:321:21", + "nodes": [], + "body": { + "id": 28778, + "nodeType": "Block", + "src": "11516:209:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 28755, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28744, + "src": "11537:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28756, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28746, + "src": "11545:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28757, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28748, + "src": "11556:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28754, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28902, + "src": "11527:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11527:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28759, + "nodeType": "ExpressionStatement", + "src": "11527:36:21" + }, + { + "expression": { + "arguments": [ + { + "id": 28761, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28744, + "src": "11583:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28762, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "11591:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11591:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "id": 28771, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28748, + "src": "11643:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365", + "id": 28772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11651:42:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330", + "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\"" + }, + "value": "ERC20: transfer amount exceeds allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330", + "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\"" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 28764, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28601, + "src": "11605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 28766, + "indexExpression": { + "id": 28765, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28744, + "src": "11617:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11605:19:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28769, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28767, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "11625:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11625:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11605:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11639:3:21", + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 28532, + "src": "11605:37:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 28773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11605:89:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28760, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29058, + "src": "11574:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11574:121:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28775, + "nodeType": "ExpressionStatement", + "src": "11574:121:21" + }, + { + "expression": { + "hexValue": "74727565", + "id": 28776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11713:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 28753, + "id": 28777, + "nodeType": "Return", + "src": "11706:11:21" + } + ] + }, + "baseFunctions": [ + 29139 + ], + "documentation": { + "id": 28742, + "nodeType": "StructuredDocumentation", + "src": "10930:468:21", + "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n Requirements:\n - `sender` and `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`.\n - the caller must have allowance for ``sender``'s tokens of at least\n `amount`." + }, + "functionSelector": "23b872dd", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "11413:12:21", + "overrides": { + "id": 28750, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "11492:8:21" + }, + "parameters": { + "id": 28749, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28744, + "mutability": "mutable", + "name": "sender", + "nameLocation": "11434:6:21", + "nodeType": "VariableDeclaration", + "scope": 28779, + "src": "11426:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28743, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11426:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28746, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "11450:9:21", + "nodeType": "VariableDeclaration", + "scope": 28779, + "src": "11442:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28745, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11442:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28748, + "mutability": "mutable", + "name": "amount", + "nameLocation": "11469:6:21", + "nodeType": "VariableDeclaration", + "scope": 28779, + "src": "11461:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28747, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11461:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11425:51:21" + }, + "returnParameters": { + "id": 28753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28752, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28779, + "src": "11510:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28751, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11510:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "11509:6:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 28807, + "nodeType": "FunctionDefinition", + "src": "12134:218:21", + "nodes": [], + "body": { + "id": 28806, + "nodeType": "Block", + "src": "12228:124:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28790, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "12248:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12248:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 28792, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28782, + "src": "12262:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 28800, + "name": "addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28784, + "src": "12310:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 28793, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28601, + "src": "12271:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 28796, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28794, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "12283:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12283:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12271:25:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28798, + "indexExpression": { + "id": 28797, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28782, + "src": "12297:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12271:34:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12306:3:21", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 28447, + "src": "12271:38:21", + "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": 28801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12271:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28789, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29058, + "src": "12239:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12239:83:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28803, + "nodeType": "ExpressionStatement", + "src": "12239:83:21" + }, + { + "expression": { + "hexValue": "74727565", + "id": 28804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12340:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 28788, + "id": 28805, + "nodeType": "Return", + "src": "12333:11:21" + } + ] + }, + "documentation": { + "id": 28780, + "nodeType": "StructuredDocumentation", + "src": "11733:395:21", + "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "39509351", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "increaseAllowance", + "nameLocation": "12143:17:21", + "parameters": { + "id": 28785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28782, + "mutability": "mutable", + "name": "spender", + "nameLocation": "12169:7:21", + "nodeType": "VariableDeclaration", + "scope": 28807, + "src": "12161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28781, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28784, + "mutability": "mutable", + "name": "addedValue", + "nameLocation": "12186:10:21", + "nodeType": "VariableDeclaration", + "scope": 28807, + "src": "12178:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28783, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12178:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12160:37:21" + }, + "returnParameters": { + "id": 28788, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28787, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28807, + "src": "12222:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28786, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12222:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "12221:6:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 28836, + "nodeType": "FunctionDefinition", + "src": "12855:269:21", + "nodes": [], + "body": { + "id": 28835, + "nodeType": "Block", + "src": "12954:170:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28818, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "12974:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12974:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 28820, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28810, + "src": "12988:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 28828, + "name": "subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28812, + "src": "13036:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", + "id": 28829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13053:39:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "typeString": "literal_string \"ERC20: decreased allowance below zero\"" + }, + "value": "ERC20: decreased allowance below zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "typeString": "literal_string \"ERC20: decreased allowance below zero\"" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 28821, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28601, + "src": "12997:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 28824, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28822, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "13009:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13009:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12997:25:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28826, + "indexExpression": { + "id": 28825, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28810, + "src": "13023:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12997:34:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13032:3:21", + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 28532, + "src": "12997:38:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 28830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12997:96:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28817, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29058, + "src": "12965:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12965:129:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28832, + "nodeType": "ExpressionStatement", + "src": "12965:129:21" + }, + { + "expression": { + "hexValue": "74727565", + "id": 28833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13112:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 28816, + "id": 28834, + "nodeType": "Return", + "src": "13105:11:21" + } + ] + }, + "documentation": { + "id": 28808, + "nodeType": "StructuredDocumentation", + "src": "12360:489:21", + "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`." + }, + "functionSelector": "a457c2d7", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decreaseAllowance", + "nameLocation": "12864:17:21", + "parameters": { + "id": 28813, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28810, + "mutability": "mutable", + "name": "spender", + "nameLocation": "12890:7:21", + "nodeType": "VariableDeclaration", + "scope": 28836, + "src": "12882:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28809, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12882:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28812, + "mutability": "mutable", + "name": "subtractedValue", + "nameLocation": "12907:15:21", + "nodeType": "VariableDeclaration", + "scope": 28836, + "src": "12899:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12899:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12881:42:21" + }, + "returnParameters": { + "id": 28816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28815, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28836, + "src": "12948:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28814, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12948:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "12947:6:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 28902, + "nodeType": "FunctionDefinition", + "src": "13614:549:21", + "nodes": [], + "body": { + "id": 28901, + "nodeType": "Block", + "src": "13701:462:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28847, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28839, + "src": "13720:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13738:1:21", + "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": 28849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13730:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28848, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13730:7:21", + "typeDescriptions": {} + } + }, + "id": 28851, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13730:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13720:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", + "id": 28853, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13742:39:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "typeString": "literal_string \"ERC20: transfer from the zero address\"" + }, + "value": "ERC20: transfer from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "typeString": "literal_string \"ERC20: transfer from the zero address\"" + } + ], + "id": 28846, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13712:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13712:70:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28855, + "nodeType": "ExpressionStatement", + "src": "13712:70:21" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28857, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28841, + "src": "13801:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13822:1:21", + "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": 28859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13814:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13814:7:21", + "typeDescriptions": {} + } + }, + "id": 28861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13814:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13801:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 28863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13826:37:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "typeString": "literal_string \"ERC20: transfer to the zero address\"" + }, + "value": "ERC20: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "typeString": "literal_string \"ERC20: transfer to the zero address\"" + } + ], + "id": 28856, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13793:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13793:71:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28865, + "nodeType": "ExpressionStatement", + "src": "13793:71:21" + }, + { + "expression": { + "arguments": [ + { + "id": 28867, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28839, + "src": "13908:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28868, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28841, + "src": "13916:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28869, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28843, + "src": "13927:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28866, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29080, + "src": "13887:20:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13887:47:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28871, + "nodeType": "ExpressionStatement", + "src": "13887:47:21" + }, + { + "expression": { + "id": 28882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28872, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "13947:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28874, + "indexExpression": { + "id": 28873, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28839, + "src": "13957:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13947:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28879, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28843, + "src": "13989:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", + "id": 28880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13997:40:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" + }, + "value": "ERC20: transfer amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" + } + ], + "expression": { + "baseExpression": { + "id": 28875, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "13967:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28877, + "indexExpression": { + "id": 28876, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28839, + "src": "13977:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13967:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13985:3:21", + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 28532, + "src": "13967:21:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 28881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13967:71:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13947:91:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28883, + "nodeType": "ExpressionStatement", + "src": "13947:91:21" + }, + { + "expression": { + "id": 28893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28884, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "14049:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28886, + "indexExpression": { + "id": 28885, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28841, + "src": "14059:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14049:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28891, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28843, + "src": "14097:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 28887, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "14072:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28889, + "indexExpression": { + "id": 28888, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28841, + "src": "14082:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14072:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14093:3:21", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 28447, + "src": "14072:24:21", + "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": 28892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14072:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14049:55:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28894, + "nodeType": "ExpressionStatement", + "src": "14049:55:21" + }, + { + "eventCall": { + "arguments": [ + { + "id": 28896, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28839, + "src": "14129:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28897, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28841, + "src": "14137:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28898, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28843, + "src": "14148:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28895, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29148, + "src": "14120:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14120:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28900, + "nodeType": "EmitStatement", + "src": "14115:40:21" + } + ] + }, + "documentation": { + "id": 28837, + "nodeType": "StructuredDocumentation", + "src": "13132:476:21", + "text": " @dev Moves tokens `amount` from `sender` to `recipient`.\n This is internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `sender` cannot be the zero address.\n - `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "13623:9:21", + "parameters": { + "id": 28844, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28839, + "mutability": "mutable", + "name": "sender", + "nameLocation": "13641:6:21", + "nodeType": "VariableDeclaration", + "scope": 28902, + "src": "13633:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13633:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28841, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "13657:9:21", + "nodeType": "VariableDeclaration", + "scope": 28902, + "src": "13649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13649:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28843, + "mutability": "mutable", + "name": "amount", + "nameLocation": "13676:6:21", + "nodeType": "VariableDeclaration", + "scope": 28902, + "src": "13668:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13668:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13632:51:21" + }, + "returnParameters": { + "id": 28845, + "nodeType": "ParameterList", + "parameters": [], + "src": "13701:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "id": 28957, + "nodeType": "FunctionDefinition", + "src": "14445:378:21", + "nodes": [], + "body": { + "id": 28956, + "nodeType": "Block", + "src": "14510:313:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28911, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28905, + "src": "14529:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14548:1:21", + "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": 28913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14540:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28912, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14540:7:21", + "typeDescriptions": {} + } + }, + "id": 28915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14540:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "14529:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "id": 28917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14552:33:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + }, + "value": "ERC20: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + } + ], + "id": 28910, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14521:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14521:65:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28919, + "nodeType": "ExpressionStatement", + "src": "14521:65:21" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 28923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14628:1:21", + "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": 28922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28921, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14620:7:21", + "typeDescriptions": {} + } + }, + "id": 28924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14620:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28925, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28905, + "src": "14632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28926, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28907, + "src": "14641:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28920, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29080, + "src": "14599:20:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14599:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28928, + "nodeType": "ExpressionStatement", + "src": "14599:49:21" + }, + { + "expression": { + "id": 28934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28929, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28603, + "src": "14661:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28932, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28907, + "src": "14693:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 28930, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28603, + "src": "14676:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14689:3:21", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 28447, + "src": "14676:16:21", + "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": 28933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14676:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14661:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28935, + "nodeType": "ExpressionStatement", + "src": "14661:39:21" + }, + { + "expression": { + "id": 28945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28936, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "14711:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28938, + "indexExpression": { + "id": 28937, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28905, + "src": "14721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14711:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28943, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28907, + "src": "14755:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 28939, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "14732:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28941, + "indexExpression": { + "id": 28940, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28905, + "src": "14742:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14732:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14751:3:21", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 28447, + "src": "14732:22:21", + "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": 28944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14732:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14711:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28946, + "nodeType": "ExpressionStatement", + "src": "14711:51:21" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 28950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14795:1:21", + "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": 28949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14787:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28948, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14787:7:21", + "typeDescriptions": {} + } + }, + "id": 28951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14787:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28952, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28905, + "src": "14799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28953, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28907, + "src": "14808:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28947, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29148, + "src": "14778:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14778:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28955, + "nodeType": "EmitStatement", + "src": "14773:42:21" + } + ] + }, + "documentation": { + "id": 28903, + "nodeType": "StructuredDocumentation", + "src": "14171:268:21", + "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `to` cannot be the zero address." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "14454:5:21", + "parameters": { + "id": 28908, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28905, + "mutability": "mutable", + "name": "account", + "nameLocation": "14468:7:21", + "nodeType": "VariableDeclaration", + "scope": 28957, + "src": "14460:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28904, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14460:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28907, + "mutability": "mutable", + "name": "amount", + "nameLocation": "14485:6:21", + "nodeType": "VariableDeclaration", + "scope": 28957, + "src": "14477:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14477:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14459:33:21" + }, + "returnParameters": { + "id": 28909, + "nodeType": "ParameterList", + "parameters": [], + "src": "14510:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "id": 29013, + "nodeType": "FunctionDefinition", + "src": "15156:418:21", + "nodes": [], + "body": { + "id": 29012, + "nodeType": "Block", + "src": "15221:353:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28966, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28960, + "src": "15240:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28969, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15259:1:21", + "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": 28968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15251:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28967, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15251:7:21", + "typeDescriptions": {} + } + }, + "id": 28970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15251:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15240:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", + "id": 28972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15263:35:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", + "typeString": "literal_string \"ERC20: burn from the zero address\"" + }, + "value": "ERC20: burn from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", + "typeString": "literal_string \"ERC20: burn from the zero address\"" + } + ], + "id": 28965, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15232:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15232:67:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28974, + "nodeType": "ExpressionStatement", + "src": "15232:67:21" + }, + { + "expression": { + "arguments": [ + { + "id": 28976, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28960, + "src": "15333:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 28979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15350:1:21", + "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": 28978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15342:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28977, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15342:7:21", + "typeDescriptions": {} + } + }, + "id": 28980, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15342:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28981, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28962, + "src": "15354:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28975, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29080, + "src": "15312:20:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28983, + "nodeType": "ExpressionStatement", + "src": "15312:49:21" + }, + { + "expression": { + "id": 28994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28984, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "15374:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28986, + "indexExpression": { + "id": 28985, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28960, + "src": "15384:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15374:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28991, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28962, + "src": "15418:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", + "id": 28992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15426:36:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", + "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" + }, + "value": "ERC20: burn amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", + "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" + } + ], + "expression": { + "baseExpression": { + "id": 28987, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "15395:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28989, + "indexExpression": { + "id": 28988, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28960, + "src": "15405:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15395:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15414:3:21", + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 28532, + "src": "15395:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 28993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15395:68:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15374:89:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28995, + "nodeType": "ExpressionStatement", + "src": "15374:89:21" + }, + { + "expression": { + "id": 29001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28996, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28603, + "src": "15474:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28999, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28962, + "src": "15506:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 28997, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28603, + "src": "15489:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15502:3:21", + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 28462, + "src": "15489:16:21", + "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": 29000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15489:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15474:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29002, + "nodeType": "ExpressionStatement", + "src": "15474:39:21" + }, + { + "eventCall": { + "arguments": [ + { + "id": 29004, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28960, + "src": "15538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 29007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15555:1:21", + "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": 29006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15547:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29005, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15547:7:21", + "typeDescriptions": {} + } + }, + "id": 29008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15547:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 29009, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28962, + "src": "15559:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 29003, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29148, + "src": "15529:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 29010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15529:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29011, + "nodeType": "EmitStatement", + "src": "15524:42:21" + } + ] + }, + "documentation": { + "id": 28958, + "nodeType": "StructuredDocumentation", + "src": "14831:319:21", + "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "15165:5:21", + "parameters": { + "id": 28963, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28960, + "mutability": "mutable", + "name": "account", + "nameLocation": "15179:7:21", + "nodeType": "VariableDeclaration", + "scope": 29013, + "src": "15171:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28959, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15171:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28962, + "mutability": "mutable", + "name": "amount", + "nameLocation": "15196:6:21", + "nodeType": "VariableDeclaration", + "scope": 29013, + "src": "15188:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28961, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15188:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15170:33:21" + }, + "returnParameters": { + "id": 28964, + "nodeType": "ParameterList", + "parameters": [], + "src": "15221:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "id": 29058, + "nodeType": "FunctionDefinition", + "src": "16012:346:21", + "nodes": [], + "body": { + "id": 29057, + "nodeType": "Block", + "src": "16095:263:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 29029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 29024, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29016, + "src": "16114:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 29027, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16131:1:21", + "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": 29026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16123:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16123:7:21", + "typeDescriptions": {} + } + }, + "id": 29028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16123:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16114:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", + "id": 29030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16135:38:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "typeString": "literal_string \"ERC20: approve from the zero address\"" + }, + "value": "ERC20: approve from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "typeString": "literal_string \"ERC20: approve from the zero address\"" + } + ], + "id": 29023, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16106:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 29031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16106:68:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29032, + "nodeType": "ExpressionStatement", + "src": "16106:68:21" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 29039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 29034, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29018, + "src": "16193:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 29037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16212:1:21", + "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": 29036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16204:7:21", + "typeDescriptions": {} + } + }, + "id": 29038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16204:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16193:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", + "id": 29040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16216:36:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "typeString": "literal_string \"ERC20: approve to the zero address\"" + }, + "value": "ERC20: approve to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "typeString": "literal_string \"ERC20: approve to the zero address\"" + } + ], + "id": 29033, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16185:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 29041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16185:68:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29042, + "nodeType": "ExpressionStatement", + "src": "16185:68:21" + }, + { + "expression": { + "id": 29049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 29043, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28601, + "src": "16266:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 29046, + "indexExpression": { + "id": 29044, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29016, + "src": "16278:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16266:18:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 29047, + "indexExpression": { + "id": 29045, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29018, + "src": "16285:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16266:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 29048, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29020, + "src": "16296:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16266:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29050, + "nodeType": "ExpressionStatement", + "src": "16266:36:21" + }, + { + "eventCall": { + "arguments": [ + { + "id": 29052, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29016, + "src": "16327:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 29053, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29018, + "src": "16334:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 29054, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29020, + "src": "16343:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 29051, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29157, + "src": "16318:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 29055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16318:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29056, + "nodeType": "EmitStatement", + "src": "16313:37:21" + } + ] + }, + "documentation": { + "id": 29014, + "nodeType": "StructuredDocumentation", + "src": "15582:424:21", + "text": " @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "16021:8:21", + "parameters": { + "id": 29021, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29016, + "mutability": "mutable", + "name": "owner", + "nameLocation": "16038:5:21", + "nodeType": "VariableDeclaration", + "scope": 29058, + "src": "16030:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29015, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16030:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29018, + "mutability": "mutable", + "name": "spender", + "nameLocation": "16053:7:21", + "nodeType": "VariableDeclaration", + "scope": 29058, + "src": "16045:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29020, + "mutability": "mutable", + "name": "amount", + "nameLocation": "16070:6:21", + "nodeType": "VariableDeclaration", + "scope": 29058, + "src": "16062:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29019, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16062:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16029:48:21" + }, + "returnParameters": { + "id": 29022, + "nodeType": "ParameterList", + "parameters": [], + "src": "16095:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "id": 29069, + "nodeType": "FunctionDefinition", + "src": "16690:98:21", + "nodes": [], + "body": { + "id": 29068, + "nodeType": "Block", + "src": "16748:40:21", + "nodes": [], + "statements": [ + { + "expression": { + "id": 29066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 29064, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28609, + "src": "16759:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 29065, + "name": "decimals_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29061, + "src": "16771:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "16759:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 29067, + "nodeType": "ExpressionStatement", + "src": "16759:21:21" + } + ] + }, + "documentation": { + "id": 29059, + "nodeType": "StructuredDocumentation", + "src": "16366:318:21", + "text": " @dev Sets {decimals} to a value other than the default one of 18.\n WARNING: This function should only be called from the constructor. Most\n applications that interact with token contracts will not expect\n {decimals} to ever change, and may work incorrectly if it does." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setupDecimals", + "nameLocation": "16699:14:21", + "parameters": { + "id": 29062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29061, + "mutability": "mutable", + "name": "decimals_", + "nameLocation": "16720:9:21", + "nodeType": "VariableDeclaration", + "scope": 29069, + "src": "16714:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 29060, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16714:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "16713:17:21" + }, + "returnParameters": { + "id": 29063, + "nodeType": "ParameterList", + "parameters": [], + "src": "16748:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "id": 29080, + "nodeType": "FunctionDefinition", + "src": "17391:92:21", + "nodes": [], + "body": { + "id": 29079, + "nodeType": "Block", + "src": "17480:3:21", + "nodes": [], + "statements": [] + }, + "documentation": { + "id": 29070, + "nodeType": "StructuredDocumentation", + "src": "16796:589:21", + "text": " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be to transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nameLocation": "17400:20:21", + "parameters": { + "id": 29077, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29072, + "mutability": "mutable", + "name": "from", + "nameLocation": "17429:4:21", + "nodeType": "VariableDeclaration", + "scope": 29080, + "src": "17421:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17421:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29074, + "mutability": "mutable", + "name": "to", + "nameLocation": "17443:2:21", + "nodeType": "VariableDeclaration", + "scope": 29080, + "src": "17435:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29073, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17435:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29076, + "mutability": "mutable", + "name": "amount", + "nameLocation": "17455:6:21", + "nodeType": "VariableDeclaration", + "scope": 29080, + "src": "17447:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29075, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17447:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17420:42:21" + }, + "returnParameters": { + "id": 29078, + "nodeType": "ParameterList", + "parameters": [], + "src": "17480:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 28585, + "name": "Context", + "nameLocations": [ + "7754:7:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28122, + "src": "7754:7:21" + }, + "id": 28586, + "nodeType": "InheritanceSpecifier", + "src": "7754:7:21" + }, + { + "baseName": { + "id": 28587, + "name": "IERC20", + "nameLocations": [ + "7763:6:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29158, + "src": "7763:6:21" + }, + "id": 28588, + "nodeType": "InheritanceSpecifier", + "src": "7763:6:21" + } + ], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 28584, + "nodeType": "StructuredDocumentation", + "src": "6549:1185:21", + "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin guidelines: functions revert instead\n of returning `false` on failure. This behavior is nonetheless conventional\n and does not conflict with the expectations of ERC20 applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}." + }, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 29081, + 29158, + 28122 + ], + "name": "ERC20", + "nameLocation": "7745:5:21", + "scope": 29082, + "usedErrors": [] + } + ], + "license": "GPL-3.0-or-later" + }, + "id": 21 +} \ No newline at end of file diff --git a/out/ERC20.sol/SafeMath.json b/out/ERC20.sol/SafeMath.json new file mode 100644 index 0000000..730e52b --- /dev/null +++ b/out/ERC20.sol/SafeMath.json @@ -0,0 +1,10285 @@ +{ + "abi": [], + "bytecode": { + "object": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d191b993b26ddcba8d51d865db4da8043bceeddc283f06b6d58439c56b80b4c664736f6c63430008110033", + "sourceMap": "136:6409:21:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;136:6409:21;;;;;;;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d191b993b26ddcba8d51d865db4da8043bceeddc283f06b6d58439c56b80b4c664736f6c63430008110033", + "sourceMap": "136:6409:21:-:0;;;;;;;;", + "linkReferences": {} + }, + "methodIdentifiers": {}, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ERC20.sol\":\"SafeMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/extensions/Context.sol\":{\"keccak256\":\"0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12\",\"dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV\"]},\"src/interfaces/ERC20.sol\":{\"keccak256\":\"0x66faf9d1ffb72b9815ca0361cc51dcee221d71bf77d1fbc333764ec45ba4625d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b8e9fa1d14f1f05c268ea595f8f17b6e7a600b050ca5b28b18cce98a18500bd\",\"dweb:/ipfs/Qmdi66SsYxDycpGFRtJZ2eJy5znGp6JKwGsHd4BEkWswka\"]},\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be\",\"dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/interfaces/ERC20.sol": "SafeMath" + }, + "libraries": {} + }, + "sources": { + "src/extensions/Context.sol": { + "keccak256": "0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016", + "urls": [ + "bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12", + "dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV" + ], + "license": "MIT" + }, + "src/interfaces/ERC20.sol": { + "keccak256": "0x66faf9d1ffb72b9815ca0361cc51dcee221d71bf77d1fbc333764ec45ba4625d", + "urls": [ + "bzz-raw://7b8e9fa1d14f1f05c268ea595f8f17b6e7a600b050ca5b28b18cce98a18500bd", + "dweb:/ipfs/Qmdi66SsYxDycpGFRtJZ2eJy5znGp6JKwGsHd4BEkWswka" + ], + "license": "GPL-3.0-or-later" + }, + "src/interfaces/IERC20.sol": { + "keccak256": "0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f", + "urls": [ + "bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be", + "dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA" + ], + "license": "GPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/interfaces/ERC20.sol", + "id": 29082, + "exportedSymbols": { + "Context": [ + 28122 + ], + "ERC20": [ + 29081 + ], + "IERC20": [ + 29158 + ], + "IERC20Extended": [ + 29166 + ], + "SafeMath": [ + 28583 + ] + }, + "nodeType": "SourceUnit", + "src": "46:17440:21", + "nodes": [ + { + "id": 28272, + "nodeType": "PragmaDirective", + "src": "46:23:21", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ] + }, + { + "id": 28273, + "nodeType": "ImportDirective", + "src": "73:35:21", + "nodes": [], + "absolutePath": "src/extensions/Context.sol", + "file": "../extensions/Context.sol", + "nameLocation": "-1:-1:-1", + "scope": 29082, + "sourceUnit": 28123, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 28274, + "nodeType": "ImportDirective", + "src": "110:22:21", + "nodes": [], + "absolutePath": "src/interfaces/IERC20.sol", + "file": "./IERC20.sol", + "nameLocation": "-1:-1:-1", + "scope": 29082, + "sourceUnit": 29167, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 28583, + "nodeType": "ContractDefinition", + "src": "136:6409:21", + "nodes": [ + { + "id": 28306, + "nodeType": "FunctionDefinition", + "src": "301:222:21", + "nodes": [], + "body": { + "id": 28305, + "nodeType": "Block", + "src": "377:146:21", + "nodes": [], + "statements": [ + { + "id": 28304, + "nodeType": "UncheckedBlock", + "src": "388:128:21", + "statements": [ + { + "assignments": [ + 28287 + ], + "declarations": [ + { + "constant": false, + "id": 28287, + "mutability": "mutable", + "name": "c", + "nameLocation": "421:1:21", + "nodeType": "VariableDeclaration", + "scope": 28304, + "src": "413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28286, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28291, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28288, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28277, + "src": "425:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 28289, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28279, + "src": "429:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "425:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "413:17:21" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28292, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28287, + "src": "449:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 28293, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28277, + "src": "453:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "449:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28299, + "nodeType": "IfStatement", + "src": "445:28:21", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 28295, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "464:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 28296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "471:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 28297, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "463:10:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 28285, + "id": 28298, + "nodeType": "Return", + "src": "456:17:21" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 28300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "496:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 28301, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28287, + "src": "502:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28302, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 28285, + "id": 28303, + "nodeType": "Return", + "src": "488:16:21" + } + ] + } + ] + }, + "documentation": { + "id": 28275, + "nodeType": "StructuredDocumentation", + "src": "160:135:21", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nameLocation": "310:6:21", + "parameters": { + "id": 28280, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28277, + "mutability": "mutable", + "name": "a", + "nameLocation": "325:1:21", + "nodeType": "VariableDeclaration", + "scope": 28306, + "src": "317:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28276, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "317:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28279, + "mutability": "mutable", + "name": "b", + "nameLocation": "336:1:21", + "nodeType": "VariableDeclaration", + "scope": 28306, + "src": "328:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "328:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "316:22:21" + }, + "returnParameters": { + "id": 28285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28282, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28306, + "src": "362:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28281, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "362:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28284, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28306, + "src": "368:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28283, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "361:15:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28334, + "nodeType": "FunctionDefinition", + "src": "675:194:21", + "nodes": [], + "body": { + "id": 28333, + "nodeType": "Block", + "src": "751:118:21", + "nodes": [], + "statements": [ + { + "id": 28332, + "nodeType": "UncheckedBlock", + "src": "762:100:21", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28318, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28311, + "src": "791:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 28319, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28309, + "src": "795:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "791:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28325, + "nodeType": "IfStatement", + "src": "787:28:21", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 28321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "806:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 28322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "813:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 28323, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 28317, + "id": 28324, + "nodeType": "Return", + "src": "798:17:21" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 28326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "838:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28327, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28309, + "src": "844:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 28328, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28311, + "src": "848:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "844:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28330, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "837:13:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 28317, + "id": 28331, + "nodeType": "Return", + "src": "830:20:21" + } + ] + } + ] + }, + "documentation": { + "id": 28307, + "nodeType": "StructuredDocumentation", + "src": "531:138:21", + "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nameLocation": "684:6:21", + "parameters": { + "id": 28312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28309, + "mutability": "mutable", + "name": "a", + "nameLocation": "699:1:21", + "nodeType": "VariableDeclaration", + "scope": 28334, + "src": "691:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "691:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28311, + "mutability": "mutable", + "name": "b", + "nameLocation": "710:1:21", + "nodeType": "VariableDeclaration", + "scope": 28334, + "src": "702:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "702:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "690:22:21" + }, + "returnParameters": { + "id": 28317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28314, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28334, + "src": "736:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "736:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28316, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28334, + "src": "742:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "742:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "735:15:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28376, + "nodeType": "FunctionDefinition", + "src": "1024:503:21", + "nodes": [], + "body": { + "id": 28375, + "nodeType": "Block", + "src": "1100:427:21", + "nodes": [], + "statements": [ + { + "id": 28374, + "nodeType": "UncheckedBlock", + "src": "1111:409:21", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28346, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28337, + "src": "1373:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 28347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1378:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1373:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28353, + "nodeType": "IfStatement", + "src": "1369:28:21", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 28349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1389:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 28350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1395:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 28351, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1388:9:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 28345, + "id": 28352, + "nodeType": "Return", + "src": "1381:16:21" + } + }, + { + "assignments": [ + 28355 + ], + "declarations": [ + { + "constant": false, + "id": 28355, + "mutability": "mutable", + "name": "c", + "nameLocation": "1420:1:21", + "nodeType": "VariableDeclaration", + "scope": 28374, + "src": "1412:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28354, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28359, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28356, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28337, + "src": "1424:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 28357, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28339, + "src": "1428:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1424:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1412:17:21" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28360, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28355, + "src": "1448:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 28361, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28337, + "src": "1452:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1448:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 28363, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28339, + "src": "1457:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1448:10:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28369, + "nodeType": "IfStatement", + "src": "1444:33:21", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 28365, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1468:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 28366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1475:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 28367, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1467:10:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 28345, + "id": 28368, + "nodeType": "Return", + "src": "1460:17:21" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 28370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1500:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 28371, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28355, + "src": "1506:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28372, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1499:9:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 28345, + "id": 28373, + "nodeType": "Return", + "src": "1492:16:21" + } + ] + } + ] + }, + "documentation": { + "id": 28335, + "nodeType": "StructuredDocumentation", + "src": "877:141:21", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nameLocation": "1033:6:21", + "parameters": { + "id": 28340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28337, + "mutability": "mutable", + "name": "a", + "nameLocation": "1048:1:21", + "nodeType": "VariableDeclaration", + "scope": 28376, + "src": "1040:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1040:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28339, + "mutability": "mutable", + "name": "b", + "nameLocation": "1059:1:21", + "nodeType": "VariableDeclaration", + "scope": 28376, + "src": "1051:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1051:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1039:22:21" + }, + "returnParameters": { + "id": 28345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28342, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28376, + "src": "1085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28341, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28344, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28376, + "src": "1091:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1084:15:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28404, + "nodeType": "FunctionDefinition", + "src": "1683:195:21", + "nodes": [], + "body": { + "id": 28403, + "nodeType": "Block", + "src": "1759:119:21", + "nodes": [], + "statements": [ + { + "id": 28402, + "nodeType": "UncheckedBlock", + "src": "1770:101:21", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28388, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28381, + "src": "1799:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 28389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1804:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1799:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28395, + "nodeType": "IfStatement", + "src": "1795:29:21", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 28391, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1815:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 28392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1822:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 28393, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1814:10:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 28387, + "id": 28394, + "nodeType": "Return", + "src": "1807:17:21" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 28396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1847:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28397, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28379, + "src": "1853:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 28398, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28381, + "src": "1857:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1853:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28400, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1846:13:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 28387, + "id": 28401, + "nodeType": "Return", + "src": "1839:20:21" + } + ] + } + ] + }, + "documentation": { + "id": 28377, + "nodeType": "StructuredDocumentation", + "src": "1535:142:21", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nameLocation": "1692:6:21", + "parameters": { + "id": 28382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28379, + "mutability": "mutable", + "name": "a", + "nameLocation": "1707:1:21", + "nodeType": "VariableDeclaration", + "scope": 28404, + "src": "1699:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28378, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1699:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28381, + "mutability": "mutable", + "name": "b", + "nameLocation": "1718:1:21", + "nodeType": "VariableDeclaration", + "scope": 28404, + "src": "1710:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28380, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1710:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1698:22:21" + }, + "returnParameters": { + "id": 28387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28384, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28404, + "src": "1744:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1744:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28386, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28404, + "src": "1750:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1750:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1743:15:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28432, + "nodeType": "FunctionDefinition", + "src": "2044:195:21", + "nodes": [], + "body": { + "id": 28431, + "nodeType": "Block", + "src": "2120:119:21", + "nodes": [], + "statements": [ + { + "id": 28430, + "nodeType": "UncheckedBlock", + "src": "2131:101:21", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28416, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28409, + "src": "2160:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 28417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2165:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2160:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28423, + "nodeType": "IfStatement", + "src": "2156:29:21", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 28419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2176:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 28420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2183:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 28421, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2175:10:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 28415, + "id": 28422, + "nodeType": "Return", + "src": "2168:17:21" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 28424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28425, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28407, + "src": "2214:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 28426, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28409, + "src": "2218:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2214:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28428, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2207:13:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 28415, + "id": 28429, + "nodeType": "Return", + "src": "2200:20:21" + } + ] + } + ] + }, + "documentation": { + "id": 28405, + "nodeType": "StructuredDocumentation", + "src": "1886:152:21", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "2053:6:21", + "parameters": { + "id": 28410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28407, + "mutability": "mutable", + "name": "a", + "nameLocation": "2068:1:21", + "nodeType": "VariableDeclaration", + "scope": 28432, + "src": "2060:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28406, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2060:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28409, + "mutability": "mutable", + "name": "b", + "nameLocation": "2079:1:21", + "nodeType": "VariableDeclaration", + "scope": 28432, + "src": "2071:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28408, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2071:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2059:22:21" + }, + "returnParameters": { + "id": 28415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28412, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28432, + "src": "2105:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28411, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2105:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28414, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28432, + "src": "2111:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28413, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2104:15:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28447, + "nodeType": "FunctionDefinition", + "src": "2486:98:21", + "nodes": [], + "body": { + "id": 28446, + "nodeType": "Block", + "src": "2553:31:21", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28442, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28435, + "src": "2571:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 28443, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28437, + "src": "2575:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2571:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28441, + "id": 28445, + "nodeType": "Return", + "src": "2564:12:21" + } + ] + }, + "documentation": { + "id": 28433, + "nodeType": "StructuredDocumentation", + "src": "2247:233:21", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nameLocation": "2495:3:21", + "parameters": { + "id": 28438, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28435, + "mutability": "mutable", + "name": "a", + "nameLocation": "2507:1:21", + "nodeType": "VariableDeclaration", + "scope": 28447, + "src": "2499:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28434, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2499:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28437, + "mutability": "mutable", + "name": "b", + "nameLocation": "2518:1:21", + "nodeType": "VariableDeclaration", + "scope": 28447, + "src": "2510:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28436, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2510:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2498:22:21" + }, + "returnParameters": { + "id": 28441, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28440, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28447, + "src": "2544:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28439, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2543:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28462, + "nodeType": "FunctionDefinition", + "src": "2867:98:21", + "nodes": [], + "body": { + "id": 28461, + "nodeType": "Block", + "src": "2934:31:21", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28457, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28450, + "src": "2952:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 28458, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28452, + "src": "2956:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2952:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28456, + "id": 28460, + "nodeType": "Return", + "src": "2945:12:21" + } + ] + }, + "documentation": { + "id": 28448, + "nodeType": "StructuredDocumentation", + "src": "2592:269:21", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nameLocation": "2876:3:21", + "parameters": { + "id": 28453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28450, + "mutability": "mutable", + "name": "a", + "nameLocation": "2888:1:21", + "nodeType": "VariableDeclaration", + "scope": 28462, + "src": "2880:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28449, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2880:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28452, + "mutability": "mutable", + "name": "b", + "nameLocation": "2899:1:21", + "nodeType": "VariableDeclaration", + "scope": 28462, + "src": "2891:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2879:22:21" + }, + "returnParameters": { + "id": 28456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28455, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28462, + "src": "2925:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2924:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28477, + "nodeType": "FunctionDefinition", + "src": "3224:98:21", + "nodes": [], + "body": { + "id": 28476, + "nodeType": "Block", + "src": "3291:31:21", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28472, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28465, + "src": "3309:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 28473, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28467, + "src": "3313:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3309:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28471, + "id": 28475, + "nodeType": "Return", + "src": "3302:12:21" + } + ] + }, + "documentation": { + "id": 28463, + "nodeType": "StructuredDocumentation", + "src": "2973:245:21", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nameLocation": "3233:3:21", + "parameters": { + "id": 28468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28465, + "mutability": "mutable", + "name": "a", + "nameLocation": "3245:1:21", + "nodeType": "VariableDeclaration", + "scope": 28477, + "src": "3237:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3237:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28467, + "mutability": "mutable", + "name": "b", + "nameLocation": "3256:1:21", + "nodeType": "VariableDeclaration", + "scope": 28477, + "src": "3248:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3236:22:21" + }, + "returnParameters": { + "id": 28471, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28470, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28477, + "src": "3282:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28469, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3282:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3281:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28492, + "nodeType": "FunctionDefinition", + "src": "3623:98:21", + "nodes": [], + "body": { + "id": 28491, + "nodeType": "Block", + "src": "3690:31:21", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28487, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28480, + "src": "3708:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 28488, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28482, + "src": "3712:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28486, + "id": 28490, + "nodeType": "Return", + "src": "3701:12:21" + } + ] + }, + "documentation": { + "id": 28478, + "nodeType": "StructuredDocumentation", + "src": "3330:287:21", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator.\n Requirements:\n - The divisor cannot be zero." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nameLocation": "3632:3:21", + "parameters": { + "id": 28483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28480, + "mutability": "mutable", + "name": "a", + "nameLocation": "3644:1:21", + "nodeType": "VariableDeclaration", + "scope": 28492, + "src": "3636:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28479, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3636:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28482, + "mutability": "mutable", + "name": "b", + "nameLocation": "3655:1:21", + "nodeType": "VariableDeclaration", + "scope": 28492, + "src": "3647:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28481, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3647:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3635:22:21" + }, + "returnParameters": { + "id": 28486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28485, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28492, + "src": "3681:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3680:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28507, + "nodeType": "FunctionDefinition", + "src": "4188:98:21", + "nodes": [], + "body": { + "id": 28506, + "nodeType": "Block", + "src": "4255:31:21", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28502, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28495, + "src": "4273:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 28503, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28497, + "src": "4277:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4273:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28501, + "id": 28505, + "nodeType": "Return", + "src": "4266:12:21" + } + ] + }, + "documentation": { + "id": 28493, + "nodeType": "StructuredDocumentation", + "src": "3729:453:21", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nameLocation": "4197:3:21", + "parameters": { + "id": 28498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28495, + "mutability": "mutable", + "name": "a", + "nameLocation": "4209:1:21", + "nodeType": "VariableDeclaration", + "scope": 28507, + "src": "4201:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4201:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28497, + "mutability": "mutable", + "name": "b", + "nameLocation": "4220:1:21", + "nodeType": "VariableDeclaration", + "scope": 28507, + "src": "4212:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28496, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4212:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4200:22:21" + }, + "returnParameters": { + "id": 28501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28500, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28507, + "src": "4246:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4246:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4245:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28532, + "nodeType": "FunctionDefinition", + "src": "4765:206:21", + "nodes": [], + "body": { + "id": 28531, + "nodeType": "Block", + "src": "4860:111:21", + "nodes": [], + "statements": [ + { + "id": 28530, + "nodeType": "UncheckedBlock", + "src": "4871:93:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28520, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28512, + "src": "4904:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 28521, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28510, + "src": "4909:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4904:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 28523, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28514, + "src": "4912:12:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 28519, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4896:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4896:29:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28525, + "nodeType": "ExpressionStatement", + "src": "4896:29:21" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28526, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28510, + "src": "4947:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 28527, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28512, + "src": "4951:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4947:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28518, + "id": 28529, + "nodeType": "Return", + "src": "4940:12:21" + } + ] + } + ] + }, + "documentation": { + "id": 28508, + "nodeType": "StructuredDocumentation", + "src": "4294:465:21", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nameLocation": "4774:3:21", + "parameters": { + "id": 28515, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28510, + "mutability": "mutable", + "name": "a", + "nameLocation": "4786:1:21", + "nodeType": "VariableDeclaration", + "scope": 28532, + "src": "4778:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28509, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4778:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28512, + "mutability": "mutable", + "name": "b", + "nameLocation": "4797:1:21", + "nodeType": "VariableDeclaration", + "scope": 28532, + "src": "4789:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28514, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "4814:12:21", + "nodeType": "VariableDeclaration", + "scope": 28532, + "src": "4800:26:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28513, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4777:50:21" + }, + "returnParameters": { + "id": 28518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28517, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28532, + "src": "4851:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4851:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4850:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28557, + "nodeType": "FunctionDefinition", + "src": "5469:205:21", + "nodes": [], + "body": { + "id": 28556, + "nodeType": "Block", + "src": "5564:110:21", + "nodes": [], + "statements": [ + { + "id": 28555, + "nodeType": "UncheckedBlock", + "src": "5575:92:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28545, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "5608:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5612:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5608:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 28548, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28539, + "src": "5615:12:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 28544, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5600:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5600:28:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28550, + "nodeType": "ExpressionStatement", + "src": "5600:28:21" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28551, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28535, + "src": "5650:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 28552, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "5654:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5650:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28543, + "id": 28554, + "nodeType": "Return", + "src": "5643:12:21" + } + ] + } + ] + }, + "documentation": { + "id": 28533, + "nodeType": "StructuredDocumentation", + "src": "4979:484:21", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nameLocation": "5478:3:21", + "parameters": { + "id": 28540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28535, + "mutability": "mutable", + "name": "a", + "nameLocation": "5490:1:21", + "nodeType": "VariableDeclaration", + "scope": 28557, + "src": "5482:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5482:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28537, + "mutability": "mutable", + "name": "b", + "nameLocation": "5501:1:21", + "nodeType": "VariableDeclaration", + "scope": 28557, + "src": "5493:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28539, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "5518:12:21", + "nodeType": "VariableDeclaration", + "scope": 28557, + "src": "5504:26:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28538, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5504:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5481:50:21" + }, + "returnParameters": { + "id": 28543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28542, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28557, + "src": "5555:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28541, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5555:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5554:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 28582, + "nodeType": "FunctionDefinition", + "src": "6337:205:21", + "nodes": [], + "body": { + "id": 28581, + "nodeType": "Block", + "src": "6432:110:21", + "nodes": [], + "statements": [ + { + "id": 28580, + "nodeType": "UncheckedBlock", + "src": "6443:92:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28570, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28562, + "src": "6476:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6480:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6476:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 28573, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28564, + "src": "6483:12:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 28569, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6468:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6468:28:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28575, + "nodeType": "ExpressionStatement", + "src": "6468:28:21" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28576, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28560, + "src": "6518:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 28577, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28562, + "src": "6522:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6518:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28568, + "id": 28579, + "nodeType": "Return", + "src": "6511:12:21" + } + ] + } + ] + }, + "documentation": { + "id": 28558, + "nodeType": "StructuredDocumentation", + "src": "5682:649:21", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nameLocation": "6346:3:21", + "parameters": { + "id": 28565, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28560, + "mutability": "mutable", + "name": "a", + "nameLocation": "6358:1:21", + "nodeType": "VariableDeclaration", + "scope": 28582, + "src": "6350:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28559, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28562, + "mutability": "mutable", + "name": "b", + "nameLocation": "6369:1:21", + "nodeType": "VariableDeclaration", + "scope": 28582, + "src": "6361:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28564, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "6386:12:21", + "nodeType": "VariableDeclaration", + "scope": 28582, + "src": "6372:26:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28563, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6372:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6349:50:21" + }, + "returnParameters": { + "id": 28568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28567, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28582, + "src": "6423:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6423:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6422:9:21" + }, + "scope": 28583, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "SafeMath", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 28583 + ], + "name": "SafeMath", + "nameLocation": "144:8:21", + "scope": 29082, + "usedErrors": [] + }, + { + "id": 29081, + "nodeType": "ContractDefinition", + "src": "7736:9750:21", + "nodes": [ + { + "id": 28591, + "nodeType": "UsingForDirective", + "src": "7777:27:21", + "nodes": [], + "global": false, + "libraryName": { + "id": 28589, + "name": "SafeMath", + "nameLocations": [ + "7783:8:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28583, + "src": "7783:8:21" + }, + "typeName": { + "id": 28590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7796:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 28595, + "nodeType": "VariableDeclaration", + "src": "7812:46:21", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "7849:9:21", + "scope": 29081, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 28594, + "keyType": { + "id": 28592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7821:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "7812:28:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 28593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7832:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "id": 28601, + "nodeType": "VariableDeclaration", + "src": "7867:69:21", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_allowances", + "nameLocation": "7925:11:21", + "scope": 29081, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 28600, + "keyType": { + "id": 28596, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7876:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "7867:49:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 28599, + "keyType": { + "id": 28597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7896:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "7887:28:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 28598, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7907:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "id": 28603, + "nodeType": "VariableDeclaration", + "src": "7945:28:21", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "7961:12:21", + "scope": 29081, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28602, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7945:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "id": 28605, + "nodeType": "VariableDeclaration", + "src": "7982:20:21", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_name", + "nameLocation": "7997:5:21", + "scope": 29081, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 28604, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7982:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "id": 28607, + "nodeType": "VariableDeclaration", + "src": "8009:22:21", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "8024:7:21", + "scope": 29081, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 28606, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8009:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "id": 28609, + "nodeType": "VariableDeclaration", + "src": "8038:23:21", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_decimals", + "nameLocation": "8052:9:21", + "scope": 29081, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 28608, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "8038:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "private" + }, + { + "id": 28630, + "nodeType": "FunctionDefinition", + "src": "8395:142:21", + "nodes": [], + "body": { + "id": 28629, + "nodeType": "Block", + "src": "8452:85:21", + "nodes": [], + "statements": [ + { + "expression": { + "id": 28619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28617, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28605, + "src": "8463:5:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28618, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "8471:5:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "8463:13:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 28620, + "nodeType": "ExpressionStatement", + "src": "8463:13:21" + }, + { + "expression": { + "id": 28623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28621, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28607, + "src": "8487:7:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28622, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28614, + "src": "8497:7:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "8487:17:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 28624, + "nodeType": "ExpressionStatement", + "src": "8487:17:21" + }, + { + "expression": { + "id": 28627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28625, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28609, + "src": "8515:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3138", + "id": 28626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "8515:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 28628, + "nodeType": "ExpressionStatement", + "src": "8515:14:21" + } + ] + }, + "documentation": { + "id": 28610, + "nodeType": "StructuredDocumentation", + "src": "8070:319:21", + "text": " @dev Sets the values for {name} and {symbol}, initializes {decimals} with\n a default value of 18.\n To select a different value for {decimals}, use {_setupDecimals}.\n All three of these values are immutable: they can only be set once during\n construction." + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 28615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28612, + "mutability": "mutable", + "name": "name_", + "nameLocation": "8422:5:21", + "nodeType": "VariableDeclaration", + "scope": 28630, + "src": "8408:19:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28611, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28614, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "8443:7:21", + "nodeType": "VariableDeclaration", + "scope": 28630, + "src": "8429:21:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8429:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8407:44:21" + }, + "returnParameters": { + "id": 28616, + "nodeType": "ParameterList", + "parameters": [], + "src": "8452:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 28639, + "nodeType": "FunctionDefinition", + "src": "8607:91:21", + "nodes": [], + "body": { + "id": 28638, + "nodeType": "Block", + "src": "8667:31:21", + "nodes": [], + "statements": [ + { + "expression": { + "id": 28636, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28605, + "src": "8685:5:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 28635, + "id": 28637, + "nodeType": "Return", + "src": "8678:12:21" + } + ] + }, + "documentation": { + "id": 28631, + "nodeType": "StructuredDocumentation", + "src": "8545:56:21", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "8616:4:21", + "parameters": { + "id": 28632, + "nodeType": "ParameterList", + "parameters": [], + "src": "8620:2:21" + }, + "returnParameters": { + "id": 28635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28634, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28639, + "src": "8652:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8652:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8651:15:21" + }, + "scope": 29081, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 28648, + "nodeType": "FunctionDefinition", + "src": "8817:95:21", + "nodes": [], + "body": { + "id": 28647, + "nodeType": "Block", + "src": "8879:33:21", + "nodes": [], + "statements": [ + { + "expression": { + "id": 28645, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28607, + "src": "8897:7:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 28644, + "id": 28646, + "nodeType": "Return", + "src": "8890:14:21" + } + ] + }, + "documentation": { + "id": 28640, + "nodeType": "StructuredDocumentation", + "src": "8706:105:21", + "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." + }, + "functionSelector": "95d89b41", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "8826:6:21", + "parameters": { + "id": 28641, + "nodeType": "ParameterList", + "parameters": [], + "src": "8832:2:21" + }, + "returnParameters": { + "id": 28644, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28643, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28648, + "src": "8864:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28642, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8864:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8863:15:21" + }, + "scope": 29081, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 28657, + "nodeType": "FunctionDefinition", + "src": "9550:91:21", + "nodes": [], + "body": { + "id": 28656, + "nodeType": "Block", + "src": "9606:35:21", + "nodes": [], + "statements": [ + { + "expression": { + "id": 28654, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28609, + "src": "9624:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 28653, + "id": 28655, + "nodeType": "Return", + "src": "9617:16:21" + } + ] + }, + "documentation": { + "id": 28649, + "nodeType": "StructuredDocumentation", + "src": "8920:624:21", + "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5,05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n called.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." + }, + "functionSelector": "313ce567", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "9559:8:21", + "parameters": { + "id": 28650, + "nodeType": "ParameterList", + "parameters": [], + "src": "9567:2:21" + }, + "returnParameters": { + "id": 28653, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28652, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28657, + "src": "9599:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 28651, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9599:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "9598:7:21" + }, + "scope": 29081, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 28667, + "nodeType": "FunctionDefinition", + "src": "9706:108:21", + "nodes": [], + "body": { + "id": 28666, + "nodeType": "Block", + "src": "9776:38:21", + "nodes": [], + "statements": [ + { + "expression": { + "id": 28664, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28603, + "src": "9794:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28663, + "id": 28665, + "nodeType": "Return", + "src": "9787:19:21" + } + ] + }, + "baseFunctions": [ + 29089 + ], + "documentation": { + "id": 28658, + "nodeType": "StructuredDocumentation", + "src": "9649:51:21", + "text": " @dev See {IERC20-totalSupply}." + }, + "functionSelector": "18160ddd", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "9715:11:21", + "overrides": { + "id": 28660, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9749:8:21" + }, + "parameters": { + "id": 28659, + "nodeType": "ParameterList", + "parameters": [], + "src": "9726:2:21" + }, + "returnParameters": { + "id": 28663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28662, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28667, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 29081, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 28681, + "nodeType": "FunctionDefinition", + "src": "9877:127:21", + "nodes": [], + "body": { + "id": 28680, + "nodeType": "Block", + "src": "9960:44:21", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "id": 28676, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "9978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28678, + "indexExpression": { + "id": 28677, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28670, + "src": "9988:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9978:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28675, + "id": 28679, + "nodeType": "Return", + "src": "9971:25:21" + } + ] + }, + "baseFunctions": [ + 29097 + ], + "documentation": { + "id": 28668, + "nodeType": "StructuredDocumentation", + "src": "9822:49:21", + "text": " @dev See {IERC20-balanceOf}." + }, + "functionSelector": "70a08231", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "9886:9:21", + "overrides": { + "id": 28672, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9933:8:21" + }, + "parameters": { + "id": 28671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28670, + "mutability": "mutable", + "name": "account", + "nameLocation": "9904:7:21", + "nodeType": "VariableDeclaration", + "scope": 28681, + "src": "9896:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28669, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9896:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9895:17:21" + }, + "returnParameters": { + "id": 28675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28674, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28681, + "src": "9951:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9951:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9950:9:21" + }, + "scope": 29081, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 28702, + "nodeType": "FunctionDefinition", + "src": "10217:175:21", + "nodes": [], + "body": { + "id": 28701, + "nodeType": "Block", + "src": "10309:83:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28693, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "10330:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10330:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 28695, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28684, + "src": "10344:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28696, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28686, + "src": "10355:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28692, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28902, + "src": "10320:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10320:42:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28698, + "nodeType": "ExpressionStatement", + "src": "10320:42:21" + }, + { + "expression": { + "hexValue": "74727565", + "id": 28699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10380:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 28691, + "id": 28700, + "nodeType": "Return", + "src": "10373:11:21" + } + ] + }, + "baseFunctions": [ + 29107 + ], + "documentation": { + "id": 28682, + "nodeType": "StructuredDocumentation", + "src": "10012:199:21", + "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `recipient` cannot be the zero address.\n - the caller must have a balance of at least `amount`." + }, + "functionSelector": "a9059cbb", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "10226:8:21", + "overrides": { + "id": 28688, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "10285:8:21" + }, + "parameters": { + "id": 28687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28684, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "10243:9:21", + "nodeType": "VariableDeclaration", + "scope": 28702, + "src": "10235:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28683, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10235:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28686, + "mutability": "mutable", + "name": "amount", + "nameLocation": "10262:6:21", + "nodeType": "VariableDeclaration", + "scope": 28702, + "src": "10254:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10234:35:21" + }, + "returnParameters": { + "id": 28691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28690, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28702, + "src": "10303:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28689, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10303:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "10302:6:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 28720, + "nodeType": "FunctionDefinition", + "src": "10455:151:21", + "nodes": [], + "body": { + "id": 28719, + "nodeType": "Block", + "src": "10553:53:21", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 28713, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28601, + "src": "10571:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 28715, + "indexExpression": { + "id": 28714, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28705, + "src": "10583:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10571:18:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28717, + "indexExpression": { + "id": 28716, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28707, + "src": "10590:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10571:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 28712, + "id": 28718, + "nodeType": "Return", + "src": "10564:34:21" + } + ] + }, + "baseFunctions": [ + 29117 + ], + "documentation": { + "id": 28703, + "nodeType": "StructuredDocumentation", + "src": "10400:49:21", + "text": " @dev See {IERC20-allowance}." + }, + "functionSelector": "dd62ed3e", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "10464:9:21", + "overrides": { + "id": 28709, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "10526:8:21" + }, + "parameters": { + "id": 28708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28705, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10482:5:21", + "nodeType": "VariableDeclaration", + "scope": 28720, + "src": "10474:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10474:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28707, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10497:7:21", + "nodeType": "VariableDeclaration", + "scope": 28720, + "src": "10489:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10489:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "10473:32:21" + }, + "returnParameters": { + "id": 28712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28711, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28720, + "src": "10544:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10543:9:21" + }, + "scope": 29081, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 28741, + "nodeType": "FunctionDefinition", + "src": "10753:169:21", + "nodes": [], + "body": { + "id": 28740, + "nodeType": "Block", + "src": "10842:80:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28732, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "10862:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10862:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 28734, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28723, + "src": "10876:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28735, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28725, + "src": "10885:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28731, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29058, + "src": "10853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10853:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28737, + "nodeType": "ExpressionStatement", + "src": "10853:39:21" + }, + { + "expression": { + "hexValue": "74727565", + "id": 28738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10910:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 28730, + "id": 28739, + "nodeType": "Return", + "src": "10903:11:21" + } + ] + }, + "baseFunctions": [ + 29127 + ], + "documentation": { + "id": 28721, + "nodeType": "StructuredDocumentation", + "src": "10614:133:21", + "text": " @dev See {IERC20-approve}.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "095ea7b3", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "10762:7:21", + "overrides": { + "id": 28727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "10818:8:21" + }, + "parameters": { + "id": 28726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28723, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10778:7:21", + "nodeType": "VariableDeclaration", + "scope": 28741, + "src": "10770:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10770:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28725, + "mutability": "mutable", + "name": "amount", + "nameLocation": "10795:6:21", + "nodeType": "VariableDeclaration", + "scope": 28741, + "src": "10787:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10787:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10769:33:21" + }, + "returnParameters": { + "id": 28730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28729, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28741, + "src": "10836:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28728, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10836:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "10835:6:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 28779, + "nodeType": "FunctionDefinition", + "src": "11404:321:21", + "nodes": [], + "body": { + "id": 28778, + "nodeType": "Block", + "src": "11516:209:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 28755, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28744, + "src": "11537:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28756, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28746, + "src": "11545:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28757, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28748, + "src": "11556:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28754, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28902, + "src": "11527:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11527:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28759, + "nodeType": "ExpressionStatement", + "src": "11527:36:21" + }, + { + "expression": { + "arguments": [ + { + "id": 28761, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28744, + "src": "11583:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28762, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "11591:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11591:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "id": 28771, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28748, + "src": "11643:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365", + "id": 28772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11651:42:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330", + "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\"" + }, + "value": "ERC20: transfer amount exceeds allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330", + "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\"" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 28764, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28601, + "src": "11605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 28766, + "indexExpression": { + "id": 28765, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28744, + "src": "11617:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11605:19:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28769, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28767, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "11625:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11625:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11605:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11639:3:21", + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 28532, + "src": "11605:37:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 28773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11605:89:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28760, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29058, + "src": "11574:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11574:121:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28775, + "nodeType": "ExpressionStatement", + "src": "11574:121:21" + }, + { + "expression": { + "hexValue": "74727565", + "id": 28776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11713:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 28753, + "id": 28777, + "nodeType": "Return", + "src": "11706:11:21" + } + ] + }, + "baseFunctions": [ + 29139 + ], + "documentation": { + "id": 28742, + "nodeType": "StructuredDocumentation", + "src": "10930:468:21", + "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n Requirements:\n - `sender` and `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`.\n - the caller must have allowance for ``sender``'s tokens of at least\n `amount`." + }, + "functionSelector": "23b872dd", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "11413:12:21", + "overrides": { + "id": 28750, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "11492:8:21" + }, + "parameters": { + "id": 28749, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28744, + "mutability": "mutable", + "name": "sender", + "nameLocation": "11434:6:21", + "nodeType": "VariableDeclaration", + "scope": 28779, + "src": "11426:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28743, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11426:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28746, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "11450:9:21", + "nodeType": "VariableDeclaration", + "scope": 28779, + "src": "11442:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28745, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11442:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28748, + "mutability": "mutable", + "name": "amount", + "nameLocation": "11469:6:21", + "nodeType": "VariableDeclaration", + "scope": 28779, + "src": "11461:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28747, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11461:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11425:51:21" + }, + "returnParameters": { + "id": 28753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28752, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28779, + "src": "11510:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28751, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11510:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "11509:6:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 28807, + "nodeType": "FunctionDefinition", + "src": "12134:218:21", + "nodes": [], + "body": { + "id": 28806, + "nodeType": "Block", + "src": "12228:124:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28790, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "12248:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12248:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 28792, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28782, + "src": "12262:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 28800, + "name": "addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28784, + "src": "12310:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 28793, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28601, + "src": "12271:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 28796, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28794, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "12283:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12283:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12271:25:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28798, + "indexExpression": { + "id": 28797, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28782, + "src": "12297:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12271:34:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12306:3:21", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 28447, + "src": "12271:38:21", + "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": 28801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12271:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28789, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29058, + "src": "12239:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12239:83:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28803, + "nodeType": "ExpressionStatement", + "src": "12239:83:21" + }, + { + "expression": { + "hexValue": "74727565", + "id": 28804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12340:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 28788, + "id": 28805, + "nodeType": "Return", + "src": "12333:11:21" + } + ] + }, + "documentation": { + "id": 28780, + "nodeType": "StructuredDocumentation", + "src": "11733:395:21", + "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "39509351", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "increaseAllowance", + "nameLocation": "12143:17:21", + "parameters": { + "id": 28785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28782, + "mutability": "mutable", + "name": "spender", + "nameLocation": "12169:7:21", + "nodeType": "VariableDeclaration", + "scope": 28807, + "src": "12161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28781, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28784, + "mutability": "mutable", + "name": "addedValue", + "nameLocation": "12186:10:21", + "nodeType": "VariableDeclaration", + "scope": 28807, + "src": "12178:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28783, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12178:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12160:37:21" + }, + "returnParameters": { + "id": 28788, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28787, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28807, + "src": "12222:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28786, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12222:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "12221:6:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 28836, + "nodeType": "FunctionDefinition", + "src": "12855:269:21", + "nodes": [], + "body": { + "id": 28835, + "nodeType": "Block", + "src": "12954:170:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28818, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "12974:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12974:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 28820, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28810, + "src": "12988:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 28828, + "name": "subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28812, + "src": "13036:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", + "id": 28829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13053:39:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "typeString": "literal_string \"ERC20: decreased allowance below zero\"" + }, + "value": "ERC20: decreased allowance below zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "typeString": "literal_string \"ERC20: decreased allowance below zero\"" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 28821, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28601, + "src": "12997:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 28824, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 28822, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28110, + "src": "13009:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 28823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13009:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12997:25:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28826, + "indexExpression": { + "id": 28825, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28810, + "src": "13023:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12997:34:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13032:3:21", + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 28532, + "src": "12997:38:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 28830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12997:96:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28817, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29058, + "src": "12965:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12965:129:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28832, + "nodeType": "ExpressionStatement", + "src": "12965:129:21" + }, + { + "expression": { + "hexValue": "74727565", + "id": 28833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13112:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 28816, + "id": 28834, + "nodeType": "Return", + "src": "13105:11:21" + } + ] + }, + "documentation": { + "id": 28808, + "nodeType": "StructuredDocumentation", + "src": "12360:489:21", + "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`." + }, + "functionSelector": "a457c2d7", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decreaseAllowance", + "nameLocation": "12864:17:21", + "parameters": { + "id": 28813, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28810, + "mutability": "mutable", + "name": "spender", + "nameLocation": "12890:7:21", + "nodeType": "VariableDeclaration", + "scope": 28836, + "src": "12882:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28809, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12882:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28812, + "mutability": "mutable", + "name": "subtractedValue", + "nameLocation": "12907:15:21", + "nodeType": "VariableDeclaration", + "scope": 28836, + "src": "12899:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12899:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12881:42:21" + }, + "returnParameters": { + "id": 28816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28815, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28836, + "src": "12948:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28814, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12948:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "12947:6:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 28902, + "nodeType": "FunctionDefinition", + "src": "13614:549:21", + "nodes": [], + "body": { + "id": 28901, + "nodeType": "Block", + "src": "13701:462:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28847, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28839, + "src": "13720:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13738:1:21", + "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": 28849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13730:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28848, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13730:7:21", + "typeDescriptions": {} + } + }, + "id": 28851, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13730:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13720:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", + "id": 28853, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13742:39:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "typeString": "literal_string \"ERC20: transfer from the zero address\"" + }, + "value": "ERC20: transfer from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "typeString": "literal_string \"ERC20: transfer from the zero address\"" + } + ], + "id": 28846, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13712:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13712:70:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28855, + "nodeType": "ExpressionStatement", + "src": "13712:70:21" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28857, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28841, + "src": "13801:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13822:1:21", + "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": 28859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13814:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13814:7:21", + "typeDescriptions": {} + } + }, + "id": 28861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13814:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13801:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 28863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13826:37:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "typeString": "literal_string \"ERC20: transfer to the zero address\"" + }, + "value": "ERC20: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "typeString": "literal_string \"ERC20: transfer to the zero address\"" + } + ], + "id": 28856, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13793:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13793:71:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28865, + "nodeType": "ExpressionStatement", + "src": "13793:71:21" + }, + { + "expression": { + "arguments": [ + { + "id": 28867, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28839, + "src": "13908:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28868, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28841, + "src": "13916:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28869, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28843, + "src": "13927:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28866, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29080, + "src": "13887:20:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13887:47:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28871, + "nodeType": "ExpressionStatement", + "src": "13887:47:21" + }, + { + "expression": { + "id": 28882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28872, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "13947:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28874, + "indexExpression": { + "id": 28873, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28839, + "src": "13957:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13947:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28879, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28843, + "src": "13989:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", + "id": 28880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13997:40:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" + }, + "value": "ERC20: transfer amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" + } + ], + "expression": { + "baseExpression": { + "id": 28875, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "13967:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28877, + "indexExpression": { + "id": 28876, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28839, + "src": "13977:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13967:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13985:3:21", + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 28532, + "src": "13967:21:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 28881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13967:71:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13947:91:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28883, + "nodeType": "ExpressionStatement", + "src": "13947:91:21" + }, + { + "expression": { + "id": 28893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28884, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "14049:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28886, + "indexExpression": { + "id": 28885, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28841, + "src": "14059:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14049:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28891, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28843, + "src": "14097:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 28887, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "14072:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28889, + "indexExpression": { + "id": 28888, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28841, + "src": "14082:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14072:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14093:3:21", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 28447, + "src": "14072:24:21", + "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": 28892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14072:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14049:55:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28894, + "nodeType": "ExpressionStatement", + "src": "14049:55:21" + }, + { + "eventCall": { + "arguments": [ + { + "id": 28896, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28839, + "src": "14129:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28897, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28841, + "src": "14137:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28898, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28843, + "src": "14148:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28895, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29148, + "src": "14120:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14120:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28900, + "nodeType": "EmitStatement", + "src": "14115:40:21" + } + ] + }, + "documentation": { + "id": 28837, + "nodeType": "StructuredDocumentation", + "src": "13132:476:21", + "text": " @dev Moves tokens `amount` from `sender` to `recipient`.\n This is internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `sender` cannot be the zero address.\n - `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "13623:9:21", + "parameters": { + "id": 28844, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28839, + "mutability": "mutable", + "name": "sender", + "nameLocation": "13641:6:21", + "nodeType": "VariableDeclaration", + "scope": 28902, + "src": "13633:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13633:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28841, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "13657:9:21", + "nodeType": "VariableDeclaration", + "scope": 28902, + "src": "13649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13649:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28843, + "mutability": "mutable", + "name": "amount", + "nameLocation": "13676:6:21", + "nodeType": "VariableDeclaration", + "scope": 28902, + "src": "13668:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13668:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13632:51:21" + }, + "returnParameters": { + "id": 28845, + "nodeType": "ParameterList", + "parameters": [], + "src": "13701:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "id": 28957, + "nodeType": "FunctionDefinition", + "src": "14445:378:21", + "nodes": [], + "body": { + "id": 28956, + "nodeType": "Block", + "src": "14510:313:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28911, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28905, + "src": "14529:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14548:1:21", + "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": 28913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14540:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28912, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14540:7:21", + "typeDescriptions": {} + } + }, + "id": 28915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14540:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "14529:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "id": 28917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14552:33:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + }, + "value": "ERC20: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + } + ], + "id": 28910, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14521:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14521:65:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28919, + "nodeType": "ExpressionStatement", + "src": "14521:65:21" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 28923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14628:1:21", + "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": 28922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28921, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14620:7:21", + "typeDescriptions": {} + } + }, + "id": 28924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14620:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28925, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28905, + "src": "14632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28926, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28907, + "src": "14641:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28920, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29080, + "src": "14599:20:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14599:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28928, + "nodeType": "ExpressionStatement", + "src": "14599:49:21" + }, + { + "expression": { + "id": 28934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28929, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28603, + "src": "14661:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28932, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28907, + "src": "14693:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 28930, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28603, + "src": "14676:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14689:3:21", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 28447, + "src": "14676:16:21", + "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": 28933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14676:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14661:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28935, + "nodeType": "ExpressionStatement", + "src": "14661:39:21" + }, + { + "expression": { + "id": 28945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28936, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "14711:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28938, + "indexExpression": { + "id": 28937, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28905, + "src": "14721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14711:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28943, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28907, + "src": "14755:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 28939, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "14732:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28941, + "indexExpression": { + "id": 28940, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28905, + "src": "14742:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14732:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14751:3:21", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 28447, + "src": "14732:22:21", + "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": 28944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14732:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14711:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28946, + "nodeType": "ExpressionStatement", + "src": "14711:51:21" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 28950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14795:1:21", + "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": 28949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14787:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28948, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14787:7:21", + "typeDescriptions": {} + } + }, + "id": 28951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14787:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28952, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28905, + "src": "14799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28953, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28907, + "src": "14808:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28947, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29148, + "src": "14778:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14778:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28955, + "nodeType": "EmitStatement", + "src": "14773:42:21" + } + ] + }, + "documentation": { + "id": 28903, + "nodeType": "StructuredDocumentation", + "src": "14171:268:21", + "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `to` cannot be the zero address." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "14454:5:21", + "parameters": { + "id": 28908, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28905, + "mutability": "mutable", + "name": "account", + "nameLocation": "14468:7:21", + "nodeType": "VariableDeclaration", + "scope": 28957, + "src": "14460:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28904, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14460:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28907, + "mutability": "mutable", + "name": "amount", + "nameLocation": "14485:6:21", + "nodeType": "VariableDeclaration", + "scope": 28957, + "src": "14477:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14477:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14459:33:21" + }, + "returnParameters": { + "id": 28909, + "nodeType": "ParameterList", + "parameters": [], + "src": "14510:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "id": 29013, + "nodeType": "FunctionDefinition", + "src": "15156:418:21", + "nodes": [], + "body": { + "id": 29012, + "nodeType": "Block", + "src": "15221:353:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28966, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28960, + "src": "15240:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28969, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15259:1:21", + "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": 28968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15251:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28967, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15251:7:21", + "typeDescriptions": {} + } + }, + "id": 28970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15251:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15240:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", + "id": 28972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15263:35:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", + "typeString": "literal_string \"ERC20: burn from the zero address\"" + }, + "value": "ERC20: burn from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", + "typeString": "literal_string \"ERC20: burn from the zero address\"" + } + ], + "id": 28965, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15232:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15232:67:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28974, + "nodeType": "ExpressionStatement", + "src": "15232:67:21" + }, + { + "expression": { + "arguments": [ + { + "id": 28976, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28960, + "src": "15333:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 28979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15350:1:21", + "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": 28978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15342:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28977, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15342:7:21", + "typeDescriptions": {} + } + }, + "id": 28980, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15342:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28981, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28962, + "src": "15354:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28975, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29080, + "src": "15312:20:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28983, + "nodeType": "ExpressionStatement", + "src": "15312:49:21" + }, + { + "expression": { + "id": 28994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28984, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "15374:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28986, + "indexExpression": { + "id": 28985, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28960, + "src": "15384:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15374:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28991, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28962, + "src": "15418:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", + "id": 28992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15426:36:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", + "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" + }, + "value": "ERC20: burn amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", + "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" + } + ], + "expression": { + "baseExpression": { + "id": 28987, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28595, + "src": "15395:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 28989, + "indexExpression": { + "id": 28988, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28960, + "src": "15405:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15395:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15414:3:21", + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 28532, + "src": "15395:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 28993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15395:68:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15374:89:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28995, + "nodeType": "ExpressionStatement", + "src": "15374:89:21" + }, + { + "expression": { + "id": 29001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28996, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28603, + "src": "15474:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28999, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28962, + "src": "15506:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 28997, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28603, + "src": "15489:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15502:3:21", + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 28462, + "src": "15489:16:21", + "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": 29000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15489:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15474:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29002, + "nodeType": "ExpressionStatement", + "src": "15474:39:21" + }, + { + "eventCall": { + "arguments": [ + { + "id": 29004, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28960, + "src": "15538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 29007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15555:1:21", + "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": 29006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15547:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29005, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15547:7:21", + "typeDescriptions": {} + } + }, + "id": 29008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15547:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 29009, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28962, + "src": "15559:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 29003, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29148, + "src": "15529:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 29010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15529:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29011, + "nodeType": "EmitStatement", + "src": "15524:42:21" + } + ] + }, + "documentation": { + "id": 28958, + "nodeType": "StructuredDocumentation", + "src": "14831:319:21", + "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "15165:5:21", + "parameters": { + "id": 28963, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28960, + "mutability": "mutable", + "name": "account", + "nameLocation": "15179:7:21", + "nodeType": "VariableDeclaration", + "scope": 29013, + "src": "15171:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28959, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15171:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28962, + "mutability": "mutable", + "name": "amount", + "nameLocation": "15196:6:21", + "nodeType": "VariableDeclaration", + "scope": 29013, + "src": "15188:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28961, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15188:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15170:33:21" + }, + "returnParameters": { + "id": 28964, + "nodeType": "ParameterList", + "parameters": [], + "src": "15221:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "id": 29058, + "nodeType": "FunctionDefinition", + "src": "16012:346:21", + "nodes": [], + "body": { + "id": 29057, + "nodeType": "Block", + "src": "16095:263:21", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 29029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 29024, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29016, + "src": "16114:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 29027, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16131:1:21", + "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": 29026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16123:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16123:7:21", + "typeDescriptions": {} + } + }, + "id": 29028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16123:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16114:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", + "id": 29030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16135:38:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "typeString": "literal_string \"ERC20: approve from the zero address\"" + }, + "value": "ERC20: approve from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "typeString": "literal_string \"ERC20: approve from the zero address\"" + } + ], + "id": 29023, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16106:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 29031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16106:68:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29032, + "nodeType": "ExpressionStatement", + "src": "16106:68:21" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 29039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 29034, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29018, + "src": "16193:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 29037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16212:1:21", + "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": 29036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16204:7:21", + "typeDescriptions": {} + } + }, + "id": 29038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16204:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16193:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", + "id": 29040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16216:36:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "typeString": "literal_string \"ERC20: approve to the zero address\"" + }, + "value": "ERC20: approve to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "typeString": "literal_string \"ERC20: approve to the zero address\"" + } + ], + "id": 29033, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16185:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 29041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16185:68:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29042, + "nodeType": "ExpressionStatement", + "src": "16185:68:21" + }, + { + "expression": { + "id": 29049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 29043, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28601, + "src": "16266:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 29046, + "indexExpression": { + "id": 29044, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29016, + "src": "16278:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16266:18:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 29047, + "indexExpression": { + "id": 29045, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29018, + "src": "16285:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16266:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 29048, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29020, + "src": "16296:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16266:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29050, + "nodeType": "ExpressionStatement", + "src": "16266:36:21" + }, + { + "eventCall": { + "arguments": [ + { + "id": 29052, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29016, + "src": "16327:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 29053, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29018, + "src": "16334:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 29054, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29020, + "src": "16343:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 29051, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29157, + "src": "16318:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 29055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16318:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29056, + "nodeType": "EmitStatement", + "src": "16313:37:21" + } + ] + }, + "documentation": { + "id": 29014, + "nodeType": "StructuredDocumentation", + "src": "15582:424:21", + "text": " @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "16021:8:21", + "parameters": { + "id": 29021, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29016, + "mutability": "mutable", + "name": "owner", + "nameLocation": "16038:5:21", + "nodeType": "VariableDeclaration", + "scope": 29058, + "src": "16030:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29015, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16030:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29018, + "mutability": "mutable", + "name": "spender", + "nameLocation": "16053:7:21", + "nodeType": "VariableDeclaration", + "scope": 29058, + "src": "16045:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29020, + "mutability": "mutable", + "name": "amount", + "nameLocation": "16070:6:21", + "nodeType": "VariableDeclaration", + "scope": 29058, + "src": "16062:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29019, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16062:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16029:48:21" + }, + "returnParameters": { + "id": 29022, + "nodeType": "ParameterList", + "parameters": [], + "src": "16095:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "id": 29069, + "nodeType": "FunctionDefinition", + "src": "16690:98:21", + "nodes": [], + "body": { + "id": 29068, + "nodeType": "Block", + "src": "16748:40:21", + "nodes": [], + "statements": [ + { + "expression": { + "id": 29066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 29064, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28609, + "src": "16759:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 29065, + "name": "decimals_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29061, + "src": "16771:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "16759:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 29067, + "nodeType": "ExpressionStatement", + "src": "16759:21:21" + } + ] + }, + "documentation": { + "id": 29059, + "nodeType": "StructuredDocumentation", + "src": "16366:318:21", + "text": " @dev Sets {decimals} to a value other than the default one of 18.\n WARNING: This function should only be called from the constructor. Most\n applications that interact with token contracts will not expect\n {decimals} to ever change, and may work incorrectly if it does." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setupDecimals", + "nameLocation": "16699:14:21", + "parameters": { + "id": 29062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29061, + "mutability": "mutable", + "name": "decimals_", + "nameLocation": "16720:9:21", + "nodeType": "VariableDeclaration", + "scope": 29069, + "src": "16714:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 29060, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16714:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "16713:17:21" + }, + "returnParameters": { + "id": 29063, + "nodeType": "ParameterList", + "parameters": [], + "src": "16748:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "id": 29080, + "nodeType": "FunctionDefinition", + "src": "17391:92:21", + "nodes": [], + "body": { + "id": 29079, + "nodeType": "Block", + "src": "17480:3:21", + "nodes": [], + "statements": [] + }, + "documentation": { + "id": 29070, + "nodeType": "StructuredDocumentation", + "src": "16796:589:21", + "text": " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be to transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nameLocation": "17400:20:21", + "parameters": { + "id": 29077, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29072, + "mutability": "mutable", + "name": "from", + "nameLocation": "17429:4:21", + "nodeType": "VariableDeclaration", + "scope": 29080, + "src": "17421:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17421:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29074, + "mutability": "mutable", + "name": "to", + "nameLocation": "17443:2:21", + "nodeType": "VariableDeclaration", + "scope": 29080, + "src": "17435:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29073, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17435:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29076, + "mutability": "mutable", + "name": "amount", + "nameLocation": "17455:6:21", + "nodeType": "VariableDeclaration", + "scope": 29080, + "src": "17447:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29075, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17447:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17420:42:21" + }, + "returnParameters": { + "id": 29078, + "nodeType": "ParameterList", + "parameters": [], + "src": "17480:0:21" + }, + "scope": 29081, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 28585, + "name": "Context", + "nameLocations": [ + "7754:7:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28122, + "src": "7754:7:21" + }, + "id": 28586, + "nodeType": "InheritanceSpecifier", + "src": "7754:7:21" + }, + { + "baseName": { + "id": 28587, + "name": "IERC20", + "nameLocations": [ + "7763:6:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29158, + "src": "7763:6:21" + }, + "id": 28588, + "nodeType": "InheritanceSpecifier", + "src": "7763:6:21" + } + ], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 28584, + "nodeType": "StructuredDocumentation", + "src": "6549:1185:21", + "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin guidelines: functions revert instead\n of returning `false` on failure. This behavior is nonetheless conventional\n and does not conflict with the expectations of ERC20 applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}." + }, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 29081, + 29158, + 28122 + ], + "name": "ERC20", + "nameLocation": "7745:5:21", + "scope": 29082, + "usedErrors": [] + } + ], + "license": "GPL-3.0-or-later" + }, + "id": 21 +} \ No newline at end of file diff --git a/out/IERC20.sol/IERC20.json b/out/IERC20.sol/IERC20.json new file mode 100644 index 0000000..81c2f0f --- /dev/null +++ b/out/IERC20.sol/IERC20.json @@ -0,0 +1,1471 @@ +{ + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be\",\"dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "spender", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Approval", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Transfer", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "allowance(address,address)": { + "details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called." + }, + "approve(address,uint256)": { + "details": "Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event." + }, + "balanceOf(address)": { + "details": "Returns the amount of tokens owned by `account`." + }, + "totalSupply()": { + "details": "Returns the amount of tokens in existence." + }, + "transfer(address,uint256)": { + "details": "Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event." + }, + "transferFrom(address,address,uint256)": { + "details": "Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/interfaces/IERC20.sol": "IERC20" + }, + "libraries": {} + }, + "sources": { + "src/interfaces/IERC20.sol": { + "keccak256": "0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f", + "urls": [ + "bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be", + "dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA" + ], + "license": "GPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/interfaces/IERC20.sol", + "id": 29167, + "exportedSymbols": { + "IERC20": [ + 29158 + ], + "IERC20Extended": [ + 29166 + ] + }, + "nodeType": "SourceUnit", + "src": "46:2777:22", + "nodes": [ + { + "id": 29083, + "nodeType": "PragmaDirective", + "src": "46:23:22", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ] + }, + { + "id": 29158, + "nodeType": "ContractDefinition", + "src": "73:2635:22", + "nodes": [ + { + "id": 29089, + "nodeType": "FunctionDefinition", + "src": "171:55:22", + "nodes": [], + "documentation": { + "id": 29084, + "nodeType": "StructuredDocumentation", + "src": "97:68:22", + "text": " @dev Returns the amount of tokens in existence." + }, + "functionSelector": "18160ddd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "180:11:22", + "parameters": { + "id": 29085, + "nodeType": "ParameterList", + "parameters": [], + "src": "191:2:22" + }, + "returnParameters": { + "id": 29088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29087, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29089, + "src": "217:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29086, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "217:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "216:9:22" + }, + "scope": 29158, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29097, + "nodeType": "FunctionDefinition", + "src": "314:68:22", + "nodes": [], + "documentation": { + "id": 29090, + "nodeType": "StructuredDocumentation", + "src": "234:74:22", + "text": " @dev Returns the amount of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "323:9:22", + "parameters": { + "id": 29093, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29092, + "mutability": "mutable", + "name": "account", + "nameLocation": "341:7:22", + "nodeType": "VariableDeclaration", + "scope": 29097, + "src": "333:15:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "333:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "332:17:22" + }, + "returnParameters": { + "id": 29096, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29095, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29097, + "src": "373:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29094, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "373:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "372:9:22" + }, + "scope": 29158, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29107, + "nodeType": "FunctionDefinition", + "src": "611:77:22", + "nodes": [], + "documentation": { + "id": 29098, + "nodeType": "StructuredDocumentation", + "src": "390:215:22", + "text": " @dev Moves `amount` tokens from the caller's account to `recipient`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "620:8:22", + "parameters": { + "id": 29103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29100, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "637:9:22", + "nodeType": "VariableDeclaration", + "scope": 29107, + "src": "629:17:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "629:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29102, + "mutability": "mutable", + "name": "amount", + "nameLocation": "656:6:22", + "nodeType": "VariableDeclaration", + "scope": 29107, + "src": "648:14:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29101, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "648:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "628:35:22" + }, + "returnParameters": { + "id": 29106, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29105, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29107, + "src": "682:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29104, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "682:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "681:6:22" + }, + "scope": 29158, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29117, + "nodeType": "FunctionDefinition", + "src": "972:83:22", + "nodes": [], + "documentation": { + "id": 29108, + "nodeType": "StructuredDocumentation", + "src": "696:270:22", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "981:9:22", + "parameters": { + "id": 29113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29110, + "mutability": "mutable", + "name": "owner", + "nameLocation": "999:5:22", + "nodeType": "VariableDeclaration", + "scope": 29117, + "src": "991:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "991:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29112, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1014:7:22", + "nodeType": "VariableDeclaration", + "scope": 29117, + "src": "1006:15:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1006:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "990:32:22" + }, + "returnParameters": { + "id": 29116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29115, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29117, + "src": "1046:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1046:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1045:9:22" + }, + "scope": 29158, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29127, + "nodeType": "FunctionDefinition", + "src": "1724:74:22", + "nodes": [], + "documentation": { + "id": 29118, + "nodeType": "StructuredDocumentation", + "src": "1063:655:22", + "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "1733:7:22", + "parameters": { + "id": 29123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29120, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1749:7:22", + "nodeType": "VariableDeclaration", + "scope": 29127, + "src": "1741:15:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29119, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1741:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29122, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1766:6:22", + "nodeType": "VariableDeclaration", + "scope": 29127, + "src": "1758:14:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1758:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1740:33:22" + }, + "returnParameters": { + "id": 29126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29125, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29127, + "src": "1792:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1792:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1791:6:22" + }, + "scope": 29158, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29139, + "nodeType": "FunctionDefinition", + "src": "2116:97:22", + "nodes": [], + "documentation": { + "id": 29128, + "nodeType": "StructuredDocumentation", + "src": "1806:304:22", + "text": " @dev Moves `amount` tokens from `sender` to `recipient` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2125:12:22", + "parameters": { + "id": 29135, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29130, + "mutability": "mutable", + "name": "sender", + "nameLocation": "2146:6:22", + "nodeType": "VariableDeclaration", + "scope": 29139, + "src": "2138:14:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2138:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29132, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "2162:9:22", + "nodeType": "VariableDeclaration", + "scope": 29139, + "src": "2154:17:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29131, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2154:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29134, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2181:6:22", + "nodeType": "VariableDeclaration", + "scope": 29139, + "src": "2173:14:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29133, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2173:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2137:51:22" + }, + "returnParameters": { + "id": 29138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29137, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29139, + "src": "2207:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29136, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2207:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2206:6:22" + }, + "scope": 29158, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29148, + "nodeType": "EventDefinition", + "src": "2390:72:22", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 29140, + "nodeType": "StructuredDocumentation", + "src": "2221:163:22", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "name": "Transfer", + "nameLocation": "2396:8:22", + "parameters": { + "id": 29147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29142, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "2421:4:22", + "nodeType": "VariableDeclaration", + "scope": 29148, + "src": "2405:20:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2405:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29144, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "2443:2:22", + "nodeType": "VariableDeclaration", + "scope": 29148, + "src": "2427:18:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29143, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2427:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29146, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "2455:5:22", + "nodeType": "VariableDeclaration", + "scope": 29148, + "src": "2447:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2447:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2404:57:22" + } + }, + { + "id": 29157, + "nodeType": "EventDefinition", + "src": "2627:78:22", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 29149, + "nodeType": "StructuredDocumentation", + "src": "2470:151:22", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "name": "Approval", + "nameLocation": "2633:8:22", + "parameters": { + "id": 29156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29151, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2658:5:22", + "nodeType": "VariableDeclaration", + "scope": 29157, + "src": "2642:21:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2642:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29153, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2681:7:22", + "nodeType": "VariableDeclaration", + "scope": 29157, + "src": "2665:23:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29152, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2665:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29155, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "2698:5:22", + "nodeType": "VariableDeclaration", + "scope": 29157, + "src": "2690:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2690:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2641:63:22" + } + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29158 + ], + "name": "IERC20", + "nameLocation": "83:6:22", + "scope": 29167, + "usedErrors": [] + }, + { + "id": 29166, + "nodeType": "ContractDefinition", + "src": "2712:111:22", + "nodes": [ + { + "id": 29165, + "nodeType": "FunctionDefinition", + "src": "2762:58:22", + "nodes": [], + "functionSelector": "313ce567", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "2771:8:22", + "parameters": { + "id": 29161, + "nodeType": "ParameterList", + "parameters": [], + "src": "2779:2:22" + }, + "returnParameters": { + "id": 29164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29163, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29165, + "src": "2813:5:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 29162, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2813:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "2812:7:22" + }, + "scope": 29166, + "stateMutability": "view", + "virtual": true, + "visibility": "external" + } + ], + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 29159, + "name": "IERC20", + "nameLocations": [ + "2748:6:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29158, + "src": "2748:6:22" + }, + "id": 29160, + "nodeType": "InheritanceSpecifier", + "src": "2748:6:22" + } + ], + "canonicalName": "IERC20Extended", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29166, + 29158 + ], + "name": "IERC20Extended", + "nameLocation": "2730:14:22", + "scope": 29167, + "usedErrors": [] + } + ], + "license": "GPL-3.0-or-later" + }, + "id": 22 +} \ No newline at end of file diff --git a/out/IERC20.sol/IERC20Extended.json b/out/IERC20.sol/IERC20Extended.json new file mode 100644 index 0000000..81fe666 --- /dev/null +++ b/out/IERC20.sol/IERC20Extended.json @@ -0,0 +1,1498 @@ +{ + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IERC20.sol\":\"IERC20Extended\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be\",\"dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "spender", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Approval", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Transfer", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "allowance(address,address)": { + "details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called." + }, + "approve(address,uint256)": { + "details": "Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event." + }, + "balanceOf(address)": { + "details": "Returns the amount of tokens owned by `account`." + }, + "totalSupply()": { + "details": "Returns the amount of tokens in existence." + }, + "transfer(address,uint256)": { + "details": "Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event." + }, + "transferFrom(address,address,uint256)": { + "details": "Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/interfaces/IERC20.sol": "IERC20Extended" + }, + "libraries": {} + }, + "sources": { + "src/interfaces/IERC20.sol": { + "keccak256": "0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f", + "urls": [ + "bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be", + "dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA" + ], + "license": "GPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/interfaces/IERC20.sol", + "id": 29167, + "exportedSymbols": { + "IERC20": [ + 29158 + ], + "IERC20Extended": [ + 29166 + ] + }, + "nodeType": "SourceUnit", + "src": "46:2777:22", + "nodes": [ + { + "id": 29083, + "nodeType": "PragmaDirective", + "src": "46:23:22", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ] + }, + { + "id": 29158, + "nodeType": "ContractDefinition", + "src": "73:2635:22", + "nodes": [ + { + "id": 29089, + "nodeType": "FunctionDefinition", + "src": "171:55:22", + "nodes": [], + "documentation": { + "id": 29084, + "nodeType": "StructuredDocumentation", + "src": "97:68:22", + "text": " @dev Returns the amount of tokens in existence." + }, + "functionSelector": "18160ddd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "180:11:22", + "parameters": { + "id": 29085, + "nodeType": "ParameterList", + "parameters": [], + "src": "191:2:22" + }, + "returnParameters": { + "id": 29088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29087, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29089, + "src": "217:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29086, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "217:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "216:9:22" + }, + "scope": 29158, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29097, + "nodeType": "FunctionDefinition", + "src": "314:68:22", + "nodes": [], + "documentation": { + "id": 29090, + "nodeType": "StructuredDocumentation", + "src": "234:74:22", + "text": " @dev Returns the amount of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "323:9:22", + "parameters": { + "id": 29093, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29092, + "mutability": "mutable", + "name": "account", + "nameLocation": "341:7:22", + "nodeType": "VariableDeclaration", + "scope": 29097, + "src": "333:15:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "333:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "332:17:22" + }, + "returnParameters": { + "id": 29096, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29095, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29097, + "src": "373:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29094, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "373:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "372:9:22" + }, + "scope": 29158, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29107, + "nodeType": "FunctionDefinition", + "src": "611:77:22", + "nodes": [], + "documentation": { + "id": 29098, + "nodeType": "StructuredDocumentation", + "src": "390:215:22", + "text": " @dev Moves `amount` tokens from the caller's account to `recipient`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "620:8:22", + "parameters": { + "id": 29103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29100, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "637:9:22", + "nodeType": "VariableDeclaration", + "scope": 29107, + "src": "629:17:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "629:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29102, + "mutability": "mutable", + "name": "amount", + "nameLocation": "656:6:22", + "nodeType": "VariableDeclaration", + "scope": 29107, + "src": "648:14:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29101, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "648:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "628:35:22" + }, + "returnParameters": { + "id": 29106, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29105, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29107, + "src": "682:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29104, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "682:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "681:6:22" + }, + "scope": 29158, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29117, + "nodeType": "FunctionDefinition", + "src": "972:83:22", + "nodes": [], + "documentation": { + "id": 29108, + "nodeType": "StructuredDocumentation", + "src": "696:270:22", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "981:9:22", + "parameters": { + "id": 29113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29110, + "mutability": "mutable", + "name": "owner", + "nameLocation": "999:5:22", + "nodeType": "VariableDeclaration", + "scope": 29117, + "src": "991:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "991:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29112, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1014:7:22", + "nodeType": "VariableDeclaration", + "scope": 29117, + "src": "1006:15:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1006:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "990:32:22" + }, + "returnParameters": { + "id": 29116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29115, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29117, + "src": "1046:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1046:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1045:9:22" + }, + "scope": 29158, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29127, + "nodeType": "FunctionDefinition", + "src": "1724:74:22", + "nodes": [], + "documentation": { + "id": 29118, + "nodeType": "StructuredDocumentation", + "src": "1063:655:22", + "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "1733:7:22", + "parameters": { + "id": 29123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29120, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1749:7:22", + "nodeType": "VariableDeclaration", + "scope": 29127, + "src": "1741:15:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29119, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1741:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29122, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1766:6:22", + "nodeType": "VariableDeclaration", + "scope": 29127, + "src": "1758:14:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1758:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1740:33:22" + }, + "returnParameters": { + "id": 29126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29125, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29127, + "src": "1792:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1792:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1791:6:22" + }, + "scope": 29158, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29139, + "nodeType": "FunctionDefinition", + "src": "2116:97:22", + "nodes": [], + "documentation": { + "id": 29128, + "nodeType": "StructuredDocumentation", + "src": "1806:304:22", + "text": " @dev Moves `amount` tokens from `sender` to `recipient` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2125:12:22", + "parameters": { + "id": 29135, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29130, + "mutability": "mutable", + "name": "sender", + "nameLocation": "2146:6:22", + "nodeType": "VariableDeclaration", + "scope": 29139, + "src": "2138:14:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2138:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29132, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "2162:9:22", + "nodeType": "VariableDeclaration", + "scope": 29139, + "src": "2154:17:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29131, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2154:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29134, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2181:6:22", + "nodeType": "VariableDeclaration", + "scope": 29139, + "src": "2173:14:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29133, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2173:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2137:51:22" + }, + "returnParameters": { + "id": 29138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29137, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29139, + "src": "2207:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29136, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2207:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2206:6:22" + }, + "scope": 29158, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29148, + "nodeType": "EventDefinition", + "src": "2390:72:22", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 29140, + "nodeType": "StructuredDocumentation", + "src": "2221:163:22", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "name": "Transfer", + "nameLocation": "2396:8:22", + "parameters": { + "id": 29147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29142, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "2421:4:22", + "nodeType": "VariableDeclaration", + "scope": 29148, + "src": "2405:20:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2405:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29144, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "2443:2:22", + "nodeType": "VariableDeclaration", + "scope": 29148, + "src": "2427:18:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29143, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2427:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29146, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "2455:5:22", + "nodeType": "VariableDeclaration", + "scope": 29148, + "src": "2447:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2447:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2404:57:22" + } + }, + { + "id": 29157, + "nodeType": "EventDefinition", + "src": "2627:78:22", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 29149, + "nodeType": "StructuredDocumentation", + "src": "2470:151:22", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "name": "Approval", + "nameLocation": "2633:8:22", + "parameters": { + "id": 29156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29151, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2658:5:22", + "nodeType": "VariableDeclaration", + "scope": 29157, + "src": "2642:21:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2642:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29153, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2681:7:22", + "nodeType": "VariableDeclaration", + "scope": 29157, + "src": "2665:23:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29152, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2665:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29155, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "2698:5:22", + "nodeType": "VariableDeclaration", + "scope": 29157, + "src": "2690:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2690:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2641:63:22" + } + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29158 + ], + "name": "IERC20", + "nameLocation": "83:6:22", + "scope": 29167, + "usedErrors": [] + }, + { + "id": 29166, + "nodeType": "ContractDefinition", + "src": "2712:111:22", + "nodes": [ + { + "id": 29165, + "nodeType": "FunctionDefinition", + "src": "2762:58:22", + "nodes": [], + "functionSelector": "313ce567", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "2771:8:22", + "parameters": { + "id": 29161, + "nodeType": "ParameterList", + "parameters": [], + "src": "2779:2:22" + }, + "returnParameters": { + "id": 29164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29163, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29165, + "src": "2813:5:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 29162, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2813:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "2812:7:22" + }, + "scope": 29166, + "stateMutability": "view", + "virtual": true, + "visibility": "external" + } + ], + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 29159, + "name": "IERC20", + "nameLocations": [ + "2748:6:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29158, + "src": "2748:6:22" + }, + "id": 29160, + "nodeType": "InheritanceSpecifier", + "src": "2748:6:22" + } + ], + "canonicalName": "IERC20Extended", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29166, + 29158 + ], + "name": "IERC20Extended", + "nameLocation": "2730:14:22", + "scope": 29167, + "usedErrors": [] + } + ], + "license": "GPL-3.0-or-later" + }, + "id": 22 +} \ No newline at end of file diff --git a/out/IUniswapV2Factory.sol/IUniswapV2Factory.json b/out/IUniswapV2Factory.sol/IUniswapV2Factory.json new file mode 100644 index 0000000..408775f --- /dev/null +++ b/out/IUniswapV2Factory.sol/IUniswapV2Factory.json @@ -0,0 +1,1173 @@ +{ + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token0", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "token1", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "pair", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "PairCreated", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "allPairs", + "outputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "allPairsLength", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPair", + "outputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "feeTo", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "feeToSetter", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "getPair", + "outputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "setFeeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "setFeeToSetter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "allPairs(uint256)": "1e3dd18b", + "allPairsLength()": "574f2ba3", + "createPair(address,address)": "c9c65396", + "feeTo()": "017e7e58", + "feeToSetter()": "094b7415", + "getPair(address,address)": "e6a43905", + "setFeeTo(address)": "f46901ed", + "setFeeToSetter(address)": "a2e74af6" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"PairCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allPairsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeToSetter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IUniswapV2Factory.sol\":\"IUniswapV2Factory\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xc47e18780475626ac1da1437417e84442c2328eaa2726669bd4d84d46f64f275\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d0b18cef7206904c41fff4113a98513828cb5e393de57a6b6330dd1010498606\",\"dweb:/ipfs/QmRCyXnd2bvUyK39TAX9ddm7Ra7hWdMB7b2tqZeytnDyFm\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "token0", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "token1", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "pair", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "PairCreated", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "allPairs", + "outputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "allPairsLength", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "createPair", + "outputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "feeTo", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "feeToSetter", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getPair", + "outputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setFeeTo" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setFeeToSetter" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/interfaces/IUniswapV2Factory.sol": "IUniswapV2Factory" + }, + "libraries": {} + }, + "sources": { + "src/interfaces/IUniswapV2Factory.sol": { + "keccak256": "0xc47e18780475626ac1da1437417e84442c2328eaa2726669bd4d84d46f64f275", + "urls": [ + "bzz-raw://d0b18cef7206904c41fff4113a98513828cb5e393de57a6b6330dd1010498606", + "dweb:/ipfs/QmRCyXnd2bvUyK39TAX9ddm7Ra7hWdMB7b2tqZeytnDyFm" + ], + "license": "GPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/interfaces/IUniswapV2Factory.sol", + "id": 29230, + "exportedSymbols": { + "IUniswapV2Factory": [ + 29229 + ] + }, + "nodeType": "SourceUnit", + "src": "46:675:23", + "nodes": [ + { + "id": 29168, + "nodeType": "PragmaDirective", + "src": "46:23:23", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ] + }, + { + "id": 29229, + "nodeType": "ContractDefinition", + "src": "73:648:23", + "nodes": [ + { + "id": 29178, + "nodeType": "EventDefinition", + "src": "108:86:23", + "nodes": [], + "anonymous": false, + "eventSelector": "0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9", + "name": "PairCreated", + "nameLocation": "114:11:23", + "parameters": { + "id": 29177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29170, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nameLocation": "142:6:23", + "nodeType": "VariableDeclaration", + "scope": 29178, + "src": "126:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "126:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29172, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nameLocation": "166:6:23", + "nodeType": "VariableDeclaration", + "scope": 29178, + "src": "150:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29171, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "150:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29174, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nameLocation": "182:4:23", + "nodeType": "VariableDeclaration", + "scope": 29178, + "src": "174:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "174:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29176, + "indexed": false, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29178, + "src": "188:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29175, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "188:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "125:68:23" + } + }, + { + "id": 29183, + "nodeType": "FunctionDefinition", + "src": "202:49:23", + "nodes": [], + "functionSelector": "017e7e58", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nameLocation": "211:5:23", + "parameters": { + "id": 29179, + "nodeType": "ParameterList", + "parameters": [], + "src": "216:2:23" + }, + "returnParameters": { + "id": 29182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29181, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29183, + "src": "242:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29180, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "242:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "241:9:23" + }, + "scope": 29229, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29188, + "nodeType": "FunctionDefinition", + "src": "257:55:23", + "nodes": [], + "functionSelector": "094b7415", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nameLocation": "266:11:23", + "parameters": { + "id": 29184, + "nodeType": "ParameterList", + "parameters": [], + "src": "277:2:23" + }, + "returnParameters": { + "id": 29187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29186, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29188, + "src": "303:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29185, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "303:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "302:9:23" + }, + "scope": 29229, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29197, + "nodeType": "FunctionDefinition", + "src": "320:86:23", + "nodes": [], + "functionSelector": "e6a43905", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nameLocation": "329:7:23", + "parameters": { + "id": 29193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29190, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "345:6:23", + "nodeType": "VariableDeclaration", + "scope": 29197, + "src": "337:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29189, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "337:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29192, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "361:6:23", + "nodeType": "VariableDeclaration", + "scope": 29197, + "src": "353:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29191, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "353:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "336:32:23" + }, + "returnParameters": { + "id": 29196, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29195, + "mutability": "mutable", + "name": "pair", + "nameLocation": "400:4:23", + "nodeType": "VariableDeclaration", + "scope": 29197, + "src": "392:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29194, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "392:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "391:14:23" + }, + "scope": 29229, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29204, + "nodeType": "FunctionDefinition", + "src": "412:61:23", + "nodes": [], + "functionSelector": "1e3dd18b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nameLocation": "421:8:23", + "parameters": { + "id": 29200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29199, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29204, + "src": "430:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29198, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "430:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "429:6:23" + }, + "returnParameters": { + "id": 29203, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29202, + "mutability": "mutable", + "name": "pair", + "nameLocation": "467:4:23", + "nodeType": "VariableDeclaration", + "scope": 29204, + "src": "459:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29201, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "459:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "458:14:23" + }, + "scope": 29229, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29209, + "nodeType": "FunctionDefinition", + "src": "479:55:23", + "nodes": [], + "functionSelector": "574f2ba3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nameLocation": "488:14:23", + "parameters": { + "id": 29205, + "nodeType": "ParameterList", + "parameters": [], + "src": "502:2:23" + }, + "returnParameters": { + "id": 29208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29207, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29209, + "src": "528:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29206, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "528:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "527:6:23" + }, + "scope": 29229, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29218, + "nodeType": "FunctionDefinition", + "src": "542:84:23", + "nodes": [], + "functionSelector": "c9c65396", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nameLocation": "551:10:23", + "parameters": { + "id": 29214, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29211, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "570:6:23", + "nodeType": "VariableDeclaration", + "scope": 29218, + "src": "562:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29210, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "562:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29213, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "586:6:23", + "nodeType": "VariableDeclaration", + "scope": 29218, + "src": "578:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "578:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "561:32:23" + }, + "returnParameters": { + "id": 29217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29216, + "mutability": "mutable", + "name": "pair", + "nameLocation": "620:4:23", + "nodeType": "VariableDeclaration", + "scope": 29218, + "src": "612:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "612:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "611:14:23" + }, + "scope": 29229, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29223, + "nodeType": "FunctionDefinition", + "src": "634:36:23", + "nodes": [], + "functionSelector": "f46901ed", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nameLocation": "643:8:23", + "parameters": { + "id": 29221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29220, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29223, + "src": "652:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "652:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "651:9:23" + }, + "returnParameters": { + "id": 29222, + "nodeType": "ParameterList", + "parameters": [], + "src": "669:0:23" + }, + "scope": 29229, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29228, + "nodeType": "FunctionDefinition", + "src": "676:42:23", + "nodes": [], + "functionSelector": "a2e74af6", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nameLocation": "685:14:23", + "parameters": { + "id": 29226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29225, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29228, + "src": "700:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "700:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "699:9:23" + }, + "returnParameters": { + "id": 29227, + "nodeType": "ParameterList", + "parameters": [], + "src": "717:0:23" + }, + "scope": 29229, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IUniswapV2Factory", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29229 + ], + "name": "IUniswapV2Factory", + "nameLocation": "83:17:23", + "scope": 29230, + "usedErrors": [] + } + ], + "license": "GPL-3.0-or-later" + }, + "id": 23 +} \ No newline at end of file diff --git a/out/IUniswapV2Pair.sol/IUniswapV2Pair.json b/out/IUniswapV2Pair.sol/IUniswapV2Pair.json new file mode 100644 index 0000000..c124e36 --- /dev/null +++ b/out/IUniswapV2Pair.sol/IUniswapV2Pair.json @@ -0,0 +1,4348 @@ +{ + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + } + ], + "name": "Mint", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount0In", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount1In", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "Swap", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint112", + "name": "reserve0", + "type": "uint112" + }, + { + "indexed": false, + "internalType": "uint112", + "name": "reserve1", + "type": "uint112" + } + ], + "name": "Sync", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINIMUM_LIQUIDITY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "PERMIT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "burn", + "outputs": [ + { + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "factory", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getReserves", + "outputs": [ + { + "internalType": "uint112", + "name": "reserve0", + "type": "uint112" + }, + { + "internalType": "uint112", + "name": "reserve1", + "type": "uint112" + }, + { + "internalType": "uint32", + "name": "blockTimestampLast", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "kLast", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "price0CumulativeLast", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "price1CumulativeLast", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "skim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "swap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "sync", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "token0", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "token1", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "DOMAIN_SEPARATOR()": "3644e515", + "MINIMUM_LIQUIDITY()": "ba9a7a56", + "PERMIT_TYPEHASH()": "30adf81f", + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "burn(address)": "89afcb44", + "decimals()": "313ce567", + "factory()": "c45a0155", + "getReserves()": "0902f1ac", + "initialize(address,address)": "485cc955", + "kLast()": "7464fc3d", + "mint(address)": "6a627842", + "name()": "06fdde03", + "nonces(address)": "7ecebe00", + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": "d505accf", + "price0CumulativeLast()": "5909c0d5", + "price1CumulativeLast()": "5a3d5493", + "skim(address)": "bc25cf77", + "swap(uint256,uint256,address,bytes)": "022c0d9f", + "symbol()": "95d89b41", + "sync()": "fff6cae9", + "token0()": "0dfe1681", + "token1()": "d21220a7", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"}],\"name\":\"Sync\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"skim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IUniswapV2Pair.sol\":\"IUniswapV2Pair\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x858b52b38da8da9e673a9c3f6797548ec4922c3c08e18d20433ea2c4cb3974ab\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad35632fec73ce23c7c0f0ee5bb17520ff704c595383f55d65f6727ad8414273\",\"dweb:/ipfs/QmTmDxCR1MVBeAvF7BiEdJpQ4z3LApQfBk9Gyv45jfHMd2\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "spender", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Approval", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "amount0", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount1", + "type": "uint256", + "indexed": false + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "Burn", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "amount0", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount1", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Mint", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "amount0In", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount1In", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256", + "indexed": false + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "Swap", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint112", + "name": "reserve0", + "type": "uint112", + "indexed": false + }, + { + "internalType": "uint112", + "name": "reserve1", + "type": "uint112", + "indexed": false + } + ], + "type": "event", + "name": "Sync", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Transfer", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [], + "stateMutability": "pure", + "type": "function", + "name": "MINIMUM_LIQUIDITY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "pure", + "type": "function", + "name": "PERMIT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "burn", + "outputs": [ + { + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "pure", + "type": "function", + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "factory", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getReserves", + "outputs": [ + { + "internalType": "uint112", + "name": "reserve0", + "type": "uint112" + }, + { + "internalType": "uint112", + "name": "reserve1", + "type": "uint112" + }, + { + "internalType": "uint32", + "name": "blockTimestampLast", + "type": "uint32" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "initialize" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "kLast", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "pure", + "type": "function", + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "permit" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "price0CumulativeLast", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "price1CumulativeLast", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "skim" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "swap" + }, + { + "inputs": [], + "stateMutability": "pure", + "type": "function", + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "sync" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "token0", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "token1", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/interfaces/IUniswapV2Pair.sol": "IUniswapV2Pair" + }, + "libraries": {} + }, + "sources": { + "src/interfaces/IUniswapV2Pair.sol": { + "keccak256": "0x858b52b38da8da9e673a9c3f6797548ec4922c3c08e18d20433ea2c4cb3974ab", + "urls": [ + "bzz-raw://ad35632fec73ce23c7c0f0ee5bb17520ff704c595383f55d65f6727ad8414273", + "dweb:/ipfs/QmTmDxCR1MVBeAvF7BiEdJpQ4z3LApQfBk9Gyv45jfHMd2" + ], + "license": "GPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/interfaces/IUniswapV2Pair.sol", + "id": 29472, + "exportedSymbols": { + "IUniswapV2Pair": [ + 29471 + ] + }, + "nodeType": "SourceUnit", + "src": "46:2473:24", + "nodes": [ + { + "id": 29231, + "nodeType": "PragmaDirective", + "src": "46:23:24", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ] + }, + { + "id": 29471, + "nodeType": "ContractDefinition", + "src": "73:2446:24", + "nodes": [ + { + "id": 29239, + "nodeType": "EventDefinition", + "src": "105:75:24", + "nodes": [], + "anonymous": false, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "name": "Approval", + "nameLocation": "111:8:24", + "parameters": { + "id": 29238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29233, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "136:5:24", + "nodeType": "VariableDeclaration", + "scope": 29239, + "src": "120:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29232, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "120:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29235, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "159:7:24", + "nodeType": "VariableDeclaration", + "scope": 29239, + "src": "143:23:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29234, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "143:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29237, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "173:5:24", + "nodeType": "VariableDeclaration", + "scope": 29239, + "src": "168:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29236, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "168:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "119:60:24" + } + }, + { + "id": 29247, + "nodeType": "EventDefinition", + "src": "186:69:24", + "nodes": [], + "anonymous": false, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "name": "Transfer", + "nameLocation": "192:8:24", + "parameters": { + "id": 29246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29241, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "217:4:24", + "nodeType": "VariableDeclaration", + "scope": 29247, + "src": "201:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29240, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "201:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29243, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "239:2:24", + "nodeType": "VariableDeclaration", + "scope": 29247, + "src": "223:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29242, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "223:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29245, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "248:5:24", + "nodeType": "VariableDeclaration", + "scope": 29247, + "src": "243:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29244, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "243:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "200:54:24" + } + }, + { + "id": 29252, + "nodeType": "FunctionDefinition", + "src": "263:54:24", + "nodes": [], + "functionSelector": "06fdde03", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "272:4:24", + "parameters": { + "id": 29248, + "nodeType": "ParameterList", + "parameters": [], + "src": "276:2:24" + }, + "returnParameters": { + "id": 29251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29250, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29252, + "src": "302:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 29249, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "302:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "301:15:24" + }, + "scope": 29471, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29257, + "nodeType": "FunctionDefinition", + "src": "323:56:24", + "nodes": [], + "functionSelector": "95d89b41", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "332:6:24", + "parameters": { + "id": 29253, + "nodeType": "ParameterList", + "parameters": [], + "src": "338:2:24" + }, + "returnParameters": { + "id": 29256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29255, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29257, + "src": "364:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 29254, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "364:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "363:15:24" + }, + "scope": 29471, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29262, + "nodeType": "FunctionDefinition", + "src": "385:50:24", + "nodes": [], + "functionSelector": "313ce567", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "394:8:24", + "parameters": { + "id": 29258, + "nodeType": "ParameterList", + "parameters": [], + "src": "402:2:24" + }, + "returnParameters": { + "id": 29261, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29260, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29262, + "src": "428:5:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 29259, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "428:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "427:7:24" + }, + "scope": 29471, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29267, + "nodeType": "FunctionDefinition", + "src": "441:52:24", + "nodes": [], + "functionSelector": "18160ddd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "450:11:24", + "parameters": { + "id": 29263, + "nodeType": "ParameterList", + "parameters": [], + "src": "461:2:24" + }, + "returnParameters": { + "id": 29266, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29265, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29267, + "src": "487:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "487:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "486:6:24" + }, + "scope": 29471, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29274, + "nodeType": "FunctionDefinition", + "src": "499:63:24", + "nodes": [], + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "508:9:24", + "parameters": { + "id": 29270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29269, + "mutability": "mutable", + "name": "owner", + "nameLocation": "526:5:24", + "nodeType": "VariableDeclaration", + "scope": 29274, + "src": "518:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "518:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "517:15:24" + }, + "returnParameters": { + "id": 29273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29272, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29274, + "src": "556:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29271, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "556:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "555:6:24" + }, + "scope": 29471, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29283, + "nodeType": "FunctionDefinition", + "src": "568:80:24", + "nodes": [], + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "577:9:24", + "parameters": { + "id": 29279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29276, + "mutability": "mutable", + "name": "owner", + "nameLocation": "595:5:24", + "nodeType": "VariableDeclaration", + "scope": 29283, + "src": "587:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29275, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "587:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29278, + "mutability": "mutable", + "name": "spender", + "nameLocation": "610:7:24", + "nodeType": "VariableDeclaration", + "scope": 29283, + "src": "602:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "602:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "586:32:24" + }, + "returnParameters": { + "id": 29282, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29281, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29283, + "src": "642:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29280, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "642:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "641:6:24" + }, + "scope": 29471, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29292, + "nodeType": "FunctionDefinition", + "src": "656:70:24", + "nodes": [], + "functionSelector": "095ea7b3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "665:7:24", + "parameters": { + "id": 29288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29285, + "mutability": "mutable", + "name": "spender", + "nameLocation": "681:7:24", + "nodeType": "VariableDeclaration", + "scope": 29292, + "src": "673:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "673:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29287, + "mutability": "mutable", + "name": "value", + "nameLocation": "695:5:24", + "nodeType": "VariableDeclaration", + "scope": 29292, + "src": "690:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "690:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "672:29:24" + }, + "returnParameters": { + "id": 29291, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29290, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29292, + "src": "720:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29289, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "720:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "719:6:24" + }, + "scope": 29471, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29301, + "nodeType": "FunctionDefinition", + "src": "732:66:24", + "nodes": [], + "functionSelector": "a9059cbb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "741:8:24", + "parameters": { + "id": 29297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29294, + "mutability": "mutable", + "name": "to", + "nameLocation": "758:2:24", + "nodeType": "VariableDeclaration", + "scope": 29301, + "src": "750:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29293, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "750:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29296, + "mutability": "mutable", + "name": "value", + "nameLocation": "767:5:24", + "nodeType": "VariableDeclaration", + "scope": 29301, + "src": "762:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29295, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "762:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "749:24:24" + }, + "returnParameters": { + "id": 29300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29299, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29301, + "src": "792:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29298, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "792:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "791:6:24" + }, + "scope": 29471, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29312, + "nodeType": "FunctionDefinition", + "src": "804:84:24", + "nodes": [], + "functionSelector": "23b872dd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "813:12:24", + "parameters": { + "id": 29308, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29303, + "mutability": "mutable", + "name": "from", + "nameLocation": "834:4:24", + "nodeType": "VariableDeclaration", + "scope": 29312, + "src": "826:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29302, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "826:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29305, + "mutability": "mutable", + "name": "to", + "nameLocation": "848:2:24", + "nodeType": "VariableDeclaration", + "scope": 29312, + "src": "840:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "840:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29307, + "mutability": "mutable", + "name": "value", + "nameLocation": "857:5:24", + "nodeType": "VariableDeclaration", + "scope": 29312, + "src": "852:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29306, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "852:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "825:38:24" + }, + "returnParameters": { + "id": 29311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29310, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29312, + "src": "882:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29309, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "882:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "881:6:24" + }, + "scope": 29471, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29317, + "nodeType": "FunctionDefinition", + "src": "896:60:24", + "nodes": [], + "functionSelector": "3644e515", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nameLocation": "905:16:24", + "parameters": { + "id": 29313, + "nodeType": "ParameterList", + "parameters": [], + "src": "921:2:24" + }, + "returnParameters": { + "id": 29316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29315, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29317, + "src": "947:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29314, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "947:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "946:9:24" + }, + "scope": 29471, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29322, + "nodeType": "FunctionDefinition", + "src": "962:59:24", + "nodes": [], + "functionSelector": "30adf81f", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nameLocation": "971:15:24", + "parameters": { + "id": 29318, + "nodeType": "ParameterList", + "parameters": [], + "src": "986:2:24" + }, + "returnParameters": { + "id": 29321, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29320, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29322, + "src": "1012:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1012:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1011:9:24" + }, + "scope": 29471, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29329, + "nodeType": "FunctionDefinition", + "src": "1027:60:24", + "nodes": [], + "functionSelector": "7ecebe00", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nameLocation": "1036:6:24", + "parameters": { + "id": 29325, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29324, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1051:5:24", + "nodeType": "VariableDeclaration", + "scope": 29329, + "src": "1043:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29323, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1043:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1042:15:24" + }, + "returnParameters": { + "id": 29328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29327, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29329, + "src": "1081:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29326, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1081:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1080:6:24" + }, + "scope": 29471, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29346, + "nodeType": "FunctionDefinition", + "src": "1095:115:24", + "nodes": [], + "functionSelector": "d505accf", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nameLocation": "1104:6:24", + "parameters": { + "id": 29344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29331, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1119:5:24", + "nodeType": "VariableDeclaration", + "scope": 29346, + "src": "1111:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1111:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29333, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1134:7:24", + "nodeType": "VariableDeclaration", + "scope": 29346, + "src": "1126:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1126:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29335, + "mutability": "mutable", + "name": "value", + "nameLocation": "1148:5:24", + "nodeType": "VariableDeclaration", + "scope": 29346, + "src": "1143:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29334, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1143:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29337, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1160:8:24", + "nodeType": "VariableDeclaration", + "scope": 29346, + "src": "1155:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29336, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1155:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29339, + "mutability": "mutable", + "name": "v", + "nameLocation": "1176:1:24", + "nodeType": "VariableDeclaration", + "scope": 29346, + "src": "1170:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 29338, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1170:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29341, + "mutability": "mutable", + "name": "r", + "nameLocation": "1187:1:24", + "nodeType": "VariableDeclaration", + "scope": 29346, + "src": "1179:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29340, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1179:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29343, + "mutability": "mutable", + "name": "s", + "nameLocation": "1198:1:24", + "nodeType": "VariableDeclaration", + "scope": 29346, + "src": "1190:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29342, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1190:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1110:90:24" + }, + "returnParameters": { + "id": 29345, + "nodeType": "ParameterList", + "parameters": [], + "src": "1209:0:24" + }, + "scope": 29471, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29354, + "nodeType": "EventDefinition", + "src": "1218:63:24", + "nodes": [], + "anonymous": false, + "eventSelector": "4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f", + "name": "Mint", + "nameLocation": "1224:4:24", + "parameters": { + "id": 29353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29348, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1245:6:24", + "nodeType": "VariableDeclaration", + "scope": 29354, + "src": "1229:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29347, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1229:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29350, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nameLocation": "1258:7:24", + "nodeType": "VariableDeclaration", + "scope": 29354, + "src": "1253:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29349, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1253:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29352, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nameLocation": "1272:7:24", + "nodeType": "VariableDeclaration", + "scope": 29354, + "src": "1267:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29351, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1267:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1228:52:24" + } + }, + { + "id": 29364, + "nodeType": "EventDefinition", + "src": "1287:83:24", + "nodes": [], + "anonymous": false, + "eventSelector": "dccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496", + "name": "Burn", + "nameLocation": "1293:4:24", + "parameters": { + "id": 29363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29356, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1314:6:24", + "nodeType": "VariableDeclaration", + "scope": 29364, + "src": "1298:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29355, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1298:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29358, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nameLocation": "1327:7:24", + "nodeType": "VariableDeclaration", + "scope": 29364, + "src": "1322:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29357, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1322:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29360, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nameLocation": "1341:7:24", + "nodeType": "VariableDeclaration", + "scope": 29364, + "src": "1336:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29359, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1336:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29362, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "1366:2:24", + "nodeType": "VariableDeclaration", + "scope": 29364, + "src": "1350:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1350:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1297:72:24" + } + }, + { + "id": 29378, + "nodeType": "EventDefinition", + "src": "1376:182:24", + "nodes": [], + "anonymous": false, + "eventSelector": "d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "name": "Swap", + "nameLocation": "1382:4:24", + "parameters": { + "id": 29377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29366, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1413:6:24", + "nodeType": "VariableDeclaration", + "scope": 29378, + "src": "1397:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1397:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29368, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nameLocation": "1435:9:24", + "nodeType": "VariableDeclaration", + "scope": 29378, + "src": "1430:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1430:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29370, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nameLocation": "1460:9:24", + "nodeType": "VariableDeclaration", + "scope": 29378, + "src": "1455:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29369, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1455:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29372, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "1485:10:24", + "nodeType": "VariableDeclaration", + "scope": 29378, + "src": "1480:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29371, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1480:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29374, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "1511:10:24", + "nodeType": "VariableDeclaration", + "scope": 29378, + "src": "1506:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29373, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1506:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29376, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "1548:2:24", + "nodeType": "VariableDeclaration", + "scope": 29378, + "src": "1532:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29375, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1532:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1386:171:24" + } + }, + { + "id": 29384, + "nodeType": "EventDefinition", + "src": "1564:47:24", + "nodes": [], + "anonymous": false, + "eventSelector": "1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1", + "name": "Sync", + "nameLocation": "1570:4:24", + "parameters": { + "id": 29383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29380, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nameLocation": "1583:8:24", + "nodeType": "VariableDeclaration", + "scope": 29384, + "src": "1575:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 29379, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1575:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29382, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nameLocation": "1601:8:24", + "nodeType": "VariableDeclaration", + "scope": 29384, + "src": "1593:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 29381, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1593:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "visibility": "internal" + } + ], + "src": "1574:36:24" + } + }, + { + "id": 29389, + "nodeType": "FunctionDefinition", + "src": "1619:58:24", + "nodes": [], + "functionSelector": "ba9a7a56", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nameLocation": "1628:17:24", + "parameters": { + "id": 29385, + "nodeType": "ParameterList", + "parameters": [], + "src": "1645:2:24" + }, + "returnParameters": { + "id": 29388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29387, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29389, + "src": "1671:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29386, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1671:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1670:6:24" + }, + "scope": 29471, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29394, + "nodeType": "FunctionDefinition", + "src": "1683:51:24", + "nodes": [], + "functionSelector": "c45a0155", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nameLocation": "1692:7:24", + "parameters": { + "id": 29390, + "nodeType": "ParameterList", + "parameters": [], + "src": "1699:2:24" + }, + "returnParameters": { + "id": 29393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29392, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29394, + "src": "1725:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29391, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1725:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1724:9:24" + }, + "scope": 29471, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29399, + "nodeType": "FunctionDefinition", + "src": "1740:50:24", + "nodes": [], + "functionSelector": "0dfe1681", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nameLocation": "1749:6:24", + "parameters": { + "id": 29395, + "nodeType": "ParameterList", + "parameters": [], + "src": "1755:2:24" + }, + "returnParameters": { + "id": 29398, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29397, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29399, + "src": "1781:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29396, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1781:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1780:9:24" + }, + "scope": 29471, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29404, + "nodeType": "FunctionDefinition", + "src": "1796:50:24", + "nodes": [], + "functionSelector": "d21220a7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nameLocation": "1805:6:24", + "parameters": { + "id": 29400, + "nodeType": "ParameterList", + "parameters": [], + "src": "1811:2:24" + }, + "returnParameters": { + "id": 29403, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29402, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29404, + "src": "1837:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1837:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1836:9:24" + }, + "scope": 29471, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29413, + "nodeType": "FunctionDefinition", + "src": "1852:109:24", + "nodes": [], + "functionSelector": "0902f1ac", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nameLocation": "1861:11:24", + "parameters": { + "id": 29405, + "nodeType": "ParameterList", + "parameters": [], + "src": "1872:2:24" + }, + "returnParameters": { + "id": 29412, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29407, + "mutability": "mutable", + "name": "reserve0", + "nameLocation": "1906:8:24", + "nodeType": "VariableDeclaration", + "scope": 29413, + "src": "1898:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 29406, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1898:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29409, + "mutability": "mutable", + "name": "reserve1", + "nameLocation": "1924:8:24", + "nodeType": "VariableDeclaration", + "scope": 29413, + "src": "1916:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 29408, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1916:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29411, + "mutability": "mutable", + "name": "blockTimestampLast", + "nameLocation": "1941:18:24", + "nodeType": "VariableDeclaration", + "scope": 29413, + "src": "1934:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 29410, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1934:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "1897:63:24" + }, + "scope": 29471, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29418, + "nodeType": "FunctionDefinition", + "src": "1967:61:24", + "nodes": [], + "functionSelector": "5909c0d5", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nameLocation": "1976:20:24", + "parameters": { + "id": 29414, + "nodeType": "ParameterList", + "parameters": [], + "src": "1996:2:24" + }, + "returnParameters": { + "id": 29417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29416, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29418, + "src": "2022:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29415, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2022:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2021:6:24" + }, + "scope": 29471, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29423, + "nodeType": "FunctionDefinition", + "src": "2034:61:24", + "nodes": [], + "functionSelector": "5a3d5493", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nameLocation": "2043:20:24", + "parameters": { + "id": 29419, + "nodeType": "ParameterList", + "parameters": [], + "src": "2063:2:24" + }, + "returnParameters": { + "id": 29422, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29421, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29423, + "src": "2089:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29420, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2089:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2088:6:24" + }, + "scope": 29471, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29428, + "nodeType": "FunctionDefinition", + "src": "2101:46:24", + "nodes": [], + "functionSelector": "7464fc3d", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nameLocation": "2110:5:24", + "parameters": { + "id": 29424, + "nodeType": "ParameterList", + "parameters": [], + "src": "2115:2:24" + }, + "returnParameters": { + "id": 29427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29426, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29428, + "src": "2141:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29425, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2141:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2140:6:24" + }, + "scope": 29471, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29435, + "nodeType": "FunctionDefinition", + "src": "2155:60:24", + "nodes": [], + "functionSelector": "6a627842", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "2164:4:24", + "parameters": { + "id": 29431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29430, + "mutability": "mutable", + "name": "to", + "nameLocation": "2177:2:24", + "nodeType": "VariableDeclaration", + "scope": 29435, + "src": "2169:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2169:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2168:12:24" + }, + "returnParameters": { + "id": 29434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29433, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "2204:9:24", + "nodeType": "VariableDeclaration", + "scope": 29435, + "src": "2199:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29432, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2199:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2198:16:24" + }, + "scope": 29471, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29444, + "nodeType": "FunctionDefinition", + "src": "2221:72:24", + "nodes": [], + "functionSelector": "89afcb44", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nameLocation": "2230:4:24", + "parameters": { + "id": 29438, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29437, + "mutability": "mutable", + "name": "to", + "nameLocation": "2243:2:24", + "nodeType": "VariableDeclaration", + "scope": 29444, + "src": "2235:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2235:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2234:12:24" + }, + "returnParameters": { + "id": 29443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29440, + "mutability": "mutable", + "name": "amount0", + "nameLocation": "2270:7:24", + "nodeType": "VariableDeclaration", + "scope": 29444, + "src": "2265:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29439, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2265:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29442, + "mutability": "mutable", + "name": "amount1", + "nameLocation": "2284:7:24", + "nodeType": "VariableDeclaration", + "scope": 29444, + "src": "2279:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29441, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2279:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2264:28:24" + }, + "scope": 29471, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29455, + "nodeType": "FunctionDefinition", + "src": "2299:90:24", + "nodes": [], + "functionSelector": "022c0d9f", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "2308:4:24", + "parameters": { + "id": 29453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29446, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "2318:10:24", + "nodeType": "VariableDeclaration", + "scope": 29455, + "src": "2313:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29445, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2313:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29448, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "2335:10:24", + "nodeType": "VariableDeclaration", + "scope": 29455, + "src": "2330:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29447, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2330:4:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29450, + "mutability": "mutable", + "name": "to", + "nameLocation": "2355:2:24", + "nodeType": "VariableDeclaration", + "scope": 29455, + "src": "2347:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29449, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2347:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29452, + "mutability": "mutable", + "name": "data", + "nameLocation": "2374:4:24", + "nodeType": "VariableDeclaration", + "scope": 29455, + "src": "2359:19:24", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 29451, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2359:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2312:67:24" + }, + "returnParameters": { + "id": 29454, + "nodeType": "ParameterList", + "parameters": [], + "src": "2388:0:24" + }, + "scope": 29471, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29460, + "nodeType": "FunctionDefinition", + "src": "2395:35:24", + "nodes": [], + "functionSelector": "bc25cf77", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nameLocation": "2404:4:24", + "parameters": { + "id": 29458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29457, + "mutability": "mutable", + "name": "to", + "nameLocation": "2417:2:24", + "nodeType": "VariableDeclaration", + "scope": 29460, + "src": "2409:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2409:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2408:12:24" + }, + "returnParameters": { + "id": 29459, + "nodeType": "ParameterList", + "parameters": [], + "src": "2429:0:24" + }, + "scope": 29471, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29463, + "nodeType": "FunctionDefinition", + "src": "2436:25:24", + "nodes": [], + "functionSelector": "fff6cae9", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nameLocation": "2445:4:24", + "parameters": { + "id": 29461, + "nodeType": "ParameterList", + "parameters": [], + "src": "2449:2:24" + }, + "returnParameters": { + "id": 29462, + "nodeType": "ParameterList", + "parameters": [], + "src": "2460:0:24" + }, + "scope": 29471, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29470, + "nodeType": "FunctionDefinition", + "src": "2469:47:24", + "nodes": [], + "functionSelector": "485cc955", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "2478:10:24", + "parameters": { + "id": 29468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29465, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29470, + "src": "2489:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2489:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29467, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29470, + "src": "2498:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29466, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2498:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2488:18:24" + }, + "returnParameters": { + "id": 29469, + "nodeType": "ParameterList", + "parameters": [], + "src": "2515:0:24" + }, + "scope": 29471, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IUniswapV2Pair", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29471 + ], + "name": "IUniswapV2Pair", + "nameLocation": "83:14:24", + "scope": 29472, + "usedErrors": [] + } + ], + "license": "GPL-3.0-or-later" + }, + "id": 24 +} \ No newline at end of file diff --git a/out/IUniswapV2Router.sol/IUniswapV2Router01.json b/out/IUniswapV2Router.sol/IUniswapV2Router01.json new file mode 100644 index 0000000..588d81e --- /dev/null +++ b/out/IUniswapV2Router.sol/IUniswapV2Router01.json @@ -0,0 +1,6592 @@ +{ + "abi": [ + { + "inputs": [], + "name": "WETH", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountADesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountAMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "addLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountTokenDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "addLiquidityETH", + "outputs": [ + { + "internalType": "uint256", + "name": "amountToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "factory", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveOut", + "type": "uint256" + } + ], + "name": "getAmountIn", + "outputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveOut", + "type": "uint256" + } + ], + "name": "getAmountOut", + "outputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "getAmountsIn", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "getAmountsOut", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveB", + "type": "uint256" + } + ], + "name": "quote", + "outputs": [ + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountAMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "removeLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "removeLiquidityETH", + "outputs": [ + { + "internalType": "uint256", + "name": "amountToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "approveMax", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "removeLiquidityETHWithPermit", + "outputs": [ + { + "internalType": "uint256", + "name": "amountToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountAMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "approveMax", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "removeLiquidityWithPermit", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapETHForExactTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapExactETHForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapExactTokensForETH", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapExactTokensForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountInMax", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapTokensForExactETH", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountInMax", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapTokensForExactTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "WETH()": "ad5c4648", + "addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": "e8e33700", + "addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "f305d719", + "factory()": "c45a0155", + "getAmountIn(uint256,uint256,uint256)": "85f8c259", + "getAmountOut(uint256,uint256,uint256)": "054d50d4", + "getAmountsIn(uint256,address[])": "1f00ca74", + "getAmountsOut(uint256,address[])": "d06ca61f", + "quote(uint256,uint256,uint256)": "ad615dec", + "removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": "baa2abde", + "removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "02751cec", + "removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "ded9382a", + "removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "2195995c", + "swapETHForExactTokens(uint256,address[],address,uint256)": "fb3bdb41", + "swapExactETHForTokens(uint256,address[],address,uint256)": "7ff36ab5", + "swapExactTokensForETH(uint256,uint256,address[],address,uint256)": "18cbafe5", + "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": "38ed1739", + "swapTokensForExactETH(uint256,uint256,address[],address,uint256)": "4a25d94a", + "swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": "8803dbee" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidityETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsIn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveB\",\"type\":\"uint256\"}],\"name\":\"quote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityETHWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapETHForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactETHForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForETH\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactETH\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IUniswapV2Router.sol\":\"IUniswapV2Router01\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/interfaces/IUniswapV2Router.sol\":{\"keccak256\":\"0xd6f5421763c422b31d0d448ddb3406628b7119a0230d05c82ac932816374f4e4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0413b1f197957edd78b044d2342ef527c18f768d678967a085a4820b4b6e1cee\",\"dweb:/ipfs/QmTekfGmFArRoMM2HQ5hrqxqsDMfahfVa7tc7ddYk7EsD5\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "pure", + "type": "function", + "name": "WETH", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountADesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountAMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "addLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountTokenDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "addLiquidityETH", + "outputs": [ + { + "internalType": "uint256", + "name": "amountToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "pure", + "type": "function", + "name": "factory", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveOut", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function", + "name": "getAmountIn", + "outputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveOut", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function", + "name": "getAmountOut", + "outputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getAmountsIn", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getAmountsOut", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveB", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function", + "name": "quote", + "outputs": [ + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountAMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "removeLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "removeLiquidityETH", + "outputs": [ + { + "internalType": "uint256", + "name": "amountToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "approveMax", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "removeLiquidityETHWithPermit", + "outputs": [ + { + "internalType": "uint256", + "name": "amountToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountAMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "approveMax", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "removeLiquidityWithPermit", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "swapETHForExactTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "swapExactETHForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "swapExactTokensForETH", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "swapExactTokensForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountInMax", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "swapTokensForExactETH", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountInMax", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "swapTokensForExactTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/interfaces/IUniswapV2Router.sol": "IUniswapV2Router01" + }, + "libraries": {} + }, + "sources": { + "src/interfaces/IUniswapV2Router.sol": { + "keccak256": "0xd6f5421763c422b31d0d448ddb3406628b7119a0230d05c82ac932816374f4e4", + "urls": [ + "bzz-raw://0413b1f197957edd78b044d2342ef527c18f768d678967a085a4820b4b6e1cee", + "dweb:/ipfs/QmTekfGmFArRoMM2HQ5hrqxqsDMfahfVa7tc7ddYk7EsD5" + ], + "license": "GPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/interfaces/IUniswapV2Router.sol", + "id": 29865, + "exportedSymbols": { + "IUniswapV2Router01": [ + 29779 + ], + "IUniswapV2Router02": [ + 29864 + ] + }, + "nodeType": "SourceUnit", + "src": "46:4884:25", + "nodes": [ + { + "id": 29473, + "nodeType": "PragmaDirective", + "src": "46:23:25", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ] + }, + { + "id": 29779, + "nodeType": "ContractDefinition", + "src": "73:3591:25", + "nodes": [ + { + "id": 29478, + "nodeType": "FunctionDefinition", + "src": "109:51:25", + "nodes": [], + "functionSelector": "c45a0155", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nameLocation": "118:7:25", + "parameters": { + "id": 29474, + "nodeType": "ParameterList", + "parameters": [], + "src": "125:2:25" + }, + "returnParameters": { + "id": 29477, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29476, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29478, + "src": "151:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29475, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "151:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "150:9:25" + }, + "scope": 29779, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29483, + "nodeType": "FunctionDefinition", + "src": "166:48:25", + "nodes": [], + "functionSelector": "ad5c4648", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "WETH", + "nameLocation": "175:4:25", + "parameters": { + "id": 29479, + "nodeType": "ParameterList", + "parameters": [], + "src": "179:2:25" + }, + "returnParameters": { + "id": 29482, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29481, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29483, + "src": "205:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "205:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "204:9:25" + }, + "scope": 29779, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29508, + "nodeType": "FunctionDefinition", + "src": "222:298:25", + "nodes": [], + "functionSelector": "e8e33700", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addLiquidity", + "nameLocation": "231:12:25", + "parameters": { + "id": 29500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29485, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "262:6:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "254:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29484, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "254:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29487, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "287:6:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "279:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "279:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29489, + "mutability": "mutable", + "name": "amountADesired", + "nameLocation": "309:14:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "304:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29488, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "304:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29491, + "mutability": "mutable", + "name": "amountBDesired", + "nameLocation": "339:14:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "334:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29490, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "334:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29493, + "mutability": "mutable", + "name": "amountAMin", + "nameLocation": "369:10:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "364:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29492, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "364:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29495, + "mutability": "mutable", + "name": "amountBMin", + "nameLocation": "395:10:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "390:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29494, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "390:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29497, + "mutability": "mutable", + "name": "to", + "nameLocation": "424:2:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "416:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29496, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "416:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29499, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "442:8:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "437:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29498, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "437:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "243:214:25" + }, + "returnParameters": { + "id": 29507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29502, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "481:7:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "476:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29501, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "476:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29504, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "495:7:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "490:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29503, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "490:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29506, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "509:9:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "504:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29505, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "504:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "475:44:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29529, + "nodeType": "FunctionDefinition", + "src": "526:269:25", + "nodes": [], + "functionSelector": "f305d719", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addLiquidityETH", + "nameLocation": "535:15:25", + "parameters": { + "id": 29521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29510, + "mutability": "mutable", + "name": "token", + "nameLocation": "569:5:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "561:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "561:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29512, + "mutability": "mutable", + "name": "amountTokenDesired", + "nameLocation": "590:18:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "585:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29511, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "585:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29514, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "624:14:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "619:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29513, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "619:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29516, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "654:12:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "649:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29515, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "649:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29518, + "mutability": "mutable", + "name": "to", + "nameLocation": "685:2:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "677:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "677:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29520, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "703:8:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "698:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29519, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "698:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "550:168:25" + }, + "returnParameters": { + "id": 29528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29523, + "mutability": "mutable", + "name": "amountToken", + "nameLocation": "750:11:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "745:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29522, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "745:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29525, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "768:9:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "763:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29524, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "763:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29527, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "784:9:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "779:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29526, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "779:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "744:50:25" + }, + "scope": 29779, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29550, + "nodeType": "FunctionDefinition", + "src": "801:250:25", + "nodes": [], + "functionSelector": "baa2abde", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidity", + "nameLocation": "810:15:25", + "parameters": { + "id": 29544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29531, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "844:6:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "836:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "836:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29533, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "869:6:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "861:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "861:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29535, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "891:9:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "886:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29534, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "886:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29537, + "mutability": "mutable", + "name": "amountAMin", + "nameLocation": "916:10:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "911:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29536, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "911:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29539, + "mutability": "mutable", + "name": "amountBMin", + "nameLocation": "942:10:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "937:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29538, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "937:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29541, + "mutability": "mutable", + "name": "to", + "nameLocation": "971:2:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "963:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "963:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29543, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "989:8:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "984:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29542, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "984:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "825:179:25" + }, + "returnParameters": { + "id": 29549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29546, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "1028:7:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "1023:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29545, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1023:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29548, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "1042:7:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "1037:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29547, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1037:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1022:28:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29569, + "nodeType": "FunctionDefinition", + "src": "1057:239:25", + "nodes": [], + "functionSelector": "02751cec", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityETH", + "nameLocation": "1066:18:25", + "parameters": { + "id": 29563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29552, + "mutability": "mutable", + "name": "token", + "nameLocation": "1103:5:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1095:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29551, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1095:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29554, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1124:9:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1119:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29553, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1119:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29556, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "1149:14:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1144:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29555, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1144:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29558, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "1179:12:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1174:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29557, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1174:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29560, + "mutability": "mutable", + "name": "to", + "nameLocation": "1210:2:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1202:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29559, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1202:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29562, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1228:8:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1223:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29561, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1223:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1084:159:25" + }, + "returnParameters": { + "id": 29568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29565, + "mutability": "mutable", + "name": "amountToken", + "nameLocation": "1267:11:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1262:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29564, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1262:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29567, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "1285:9:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1280:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29566, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1280:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1261:34:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29598, + "nodeType": "FunctionDefinition", + "src": "1302:317:25", + "nodes": [], + "functionSelector": "2195995c", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityWithPermit", + "nameLocation": "1311:25:25", + "parameters": { + "id": 29592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29571, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "1355:6:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1347:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1347:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29573, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "1380:6:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1372:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29572, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1372:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29575, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1402:9:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1397:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29574, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1397:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29577, + "mutability": "mutable", + "name": "amountAMin", + "nameLocation": "1427:10:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1422:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29576, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1422:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29579, + "mutability": "mutable", + "name": "amountBMin", + "nameLocation": "1453:10:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1448:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29578, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1448:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29581, + "mutability": "mutable", + "name": "to", + "nameLocation": "1482:2:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1474:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29580, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1474:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29583, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1500:8:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1495:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29582, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1495:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29585, + "mutability": "mutable", + "name": "approveMax", + "nameLocation": "1524:10:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1519:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29584, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1519:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29587, + "mutability": "mutable", + "name": "v", + "nameLocation": "1542:1:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1536:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 29586, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1536:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29589, + "mutability": "mutable", + "name": "r", + "nameLocation": "1553:1:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1545:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29588, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1545:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29591, + "mutability": "mutable", + "name": "s", + "nameLocation": "1564:1:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1556:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29590, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1556:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1336:236:25" + }, + "returnParameters": { + "id": 29597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29594, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "1596:7:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1591:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29593, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1591:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29596, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "1610:7:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1605:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29595, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1605:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1590:28:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29625, + "nodeType": "FunctionDefinition", + "src": "1625:306:25", + "nodes": [], + "functionSelector": "ded9382a", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityETHWithPermit", + "nameLocation": "1634:28:25", + "parameters": { + "id": 29619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29600, + "mutability": "mutable", + "name": "token", + "nameLocation": "1681:5:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1673:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1673:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29602, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1702:9:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1697:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1697:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29604, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "1727:14:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1722:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29603, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1722:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29606, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "1757:12:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1752:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29605, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1752:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29608, + "mutability": "mutable", + "name": "to", + "nameLocation": "1788:2:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1780:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1780:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29610, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1806:8:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1801:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29609, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1801:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29612, + "mutability": "mutable", + "name": "approveMax", + "nameLocation": "1830:10:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1825:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29611, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1825:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29614, + "mutability": "mutable", + "name": "v", + "nameLocation": "1848:1:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1842:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 29613, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1842:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29616, + "mutability": "mutable", + "name": "r", + "nameLocation": "1859:1:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1851:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29615, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1851:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29618, + "mutability": "mutable", + "name": "s", + "nameLocation": "1870:1:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1862:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29617, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1862:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1662:216:25" + }, + "returnParameters": { + "id": 29624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29621, + "mutability": "mutable", + "name": "amountToken", + "nameLocation": "1902:11:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1897:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29620, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1897:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29623, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "1920:9:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1915:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29622, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1915:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1896:34:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29642, + "nodeType": "FunctionDefinition", + "src": "1937:213:25", + "nodes": [], + "functionSelector": "38ed1739", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForTokens", + "nameLocation": "1946:24:25", + "parameters": { + "id": 29637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29627, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "1986:8:25", + "nodeType": "VariableDeclaration", + "scope": 29642, + "src": "1981:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29626, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1981:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29629, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "2010:12:25", + "nodeType": "VariableDeclaration", + "scope": 29642, + "src": "2005:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29628, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2005:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29632, + "mutability": "mutable", + "name": "path", + "nameLocation": "2052:4:25", + "nodeType": "VariableDeclaration", + "scope": 29642, + "src": "2033:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2033:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29631, + "nodeType": "ArrayTypeName", + "src": "2033:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29634, + "mutability": "mutable", + "name": "to", + "nameLocation": "2075:2:25", + "nodeType": "VariableDeclaration", + "scope": 29642, + "src": "2067:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2067:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29636, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2093:8:25", + "nodeType": "VariableDeclaration", + "scope": 29642, + "src": "2088:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29635, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2088:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1970:138:25" + }, + "returnParameters": { + "id": 29641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29640, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2141:7:25", + "nodeType": "VariableDeclaration", + "scope": 29642, + "src": "2127:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29638, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2127:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29639, + "nodeType": "ArrayTypeName", + "src": "2127:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2126:23:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29659, + "nodeType": "FunctionDefinition", + "src": "2156:213:25", + "nodes": [], + "functionSelector": "8803dbee", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapTokensForExactTokens", + "nameLocation": "2165:24:25", + "parameters": { + "id": 29654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29644, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "2205:9:25", + "nodeType": "VariableDeclaration", + "scope": 29659, + "src": "2200:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29643, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2200:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29646, + "mutability": "mutable", + "name": "amountInMax", + "nameLocation": "2230:11:25", + "nodeType": "VariableDeclaration", + "scope": 29659, + "src": "2225:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29645, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2225:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29649, + "mutability": "mutable", + "name": "path", + "nameLocation": "2271:4:25", + "nodeType": "VariableDeclaration", + "scope": 29659, + "src": "2252:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29647, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2252:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29648, + "nodeType": "ArrayTypeName", + "src": "2252:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29651, + "mutability": "mutable", + "name": "to", + "nameLocation": "2294:2:25", + "nodeType": "VariableDeclaration", + "scope": 29659, + "src": "2286:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29653, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2312:8:25", + "nodeType": "VariableDeclaration", + "scope": 29659, + "src": "2307:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29652, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2307:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2189:138:25" + }, + "returnParameters": { + "id": 29658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29657, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2360:7:25", + "nodeType": "VariableDeclaration", + "scope": 29659, + "src": "2346:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29655, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2346:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29656, + "nodeType": "ArrayTypeName", + "src": "2346:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2345:23:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29674, + "nodeType": "FunctionDefinition", + "src": "2375:178:25", + "nodes": [], + "functionSelector": "7ff36ab5", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactETHForTokens", + "nameLocation": "2384:21:25", + "parameters": { + "id": 29669, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29661, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "2411:12:25", + "nodeType": "VariableDeclaration", + "scope": 29674, + "src": "2406:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29660, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2406:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29664, + "mutability": "mutable", + "name": "path", + "nameLocation": "2444:4:25", + "nodeType": "VariableDeclaration", + "scope": 29674, + "src": "2425:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2425:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29663, + "nodeType": "ArrayTypeName", + "src": "2425:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29666, + "mutability": "mutable", + "name": "to", + "nameLocation": "2458:2:25", + "nodeType": "VariableDeclaration", + "scope": 29674, + "src": "2450:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2450:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29668, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2467:8:25", + "nodeType": "VariableDeclaration", + "scope": 29674, + "src": "2462:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29667, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2462:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2405:71:25" + }, + "returnParameters": { + "id": 29673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29672, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2544:7:25", + "nodeType": "VariableDeclaration", + "scope": 29674, + "src": "2530:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29670, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2530:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29671, + "nodeType": "ArrayTypeName", + "src": "2530:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2529:23:25" + }, + "scope": 29779, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29691, + "nodeType": "FunctionDefinition", + "src": "2559:176:25", + "nodes": [], + "functionSelector": "4a25d94a", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapTokensForExactETH", + "nameLocation": "2568:21:25", + "parameters": { + "id": 29686, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29676, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "2595:9:25", + "nodeType": "VariableDeclaration", + "scope": 29691, + "src": "2590:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29675, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2590:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29678, + "mutability": "mutable", + "name": "amountInMax", + "nameLocation": "2611:11:25", + "nodeType": "VariableDeclaration", + "scope": 29691, + "src": "2606:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29677, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2606:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29681, + "mutability": "mutable", + "name": "path", + "nameLocation": "2643:4:25", + "nodeType": "VariableDeclaration", + "scope": 29691, + "src": "2624:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29679, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2624:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29680, + "nodeType": "ArrayTypeName", + "src": "2624:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29683, + "mutability": "mutable", + "name": "to", + "nameLocation": "2657:2:25", + "nodeType": "VariableDeclaration", + "scope": 29691, + "src": "2649:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2649:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29685, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2666:8:25", + "nodeType": "VariableDeclaration", + "scope": 29691, + "src": "2661:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29684, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2661:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2589:86:25" + }, + "returnParameters": { + "id": 29690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29689, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2726:7:25", + "nodeType": "VariableDeclaration", + "scope": 29691, + "src": "2712:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29687, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2712:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29688, + "nodeType": "ArrayTypeName", + "src": "2712:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2711:23:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29708, + "nodeType": "FunctionDefinition", + "src": "2741:176:25", + "nodes": [], + "functionSelector": "18cbafe5", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForETH", + "nameLocation": "2750:21:25", + "parameters": { + "id": 29703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29693, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "2777:8:25", + "nodeType": "VariableDeclaration", + "scope": 29708, + "src": "2772:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29692, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2772:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29695, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "2792:12:25", + "nodeType": "VariableDeclaration", + "scope": 29708, + "src": "2787:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29694, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2787:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29698, + "mutability": "mutable", + "name": "path", + "nameLocation": "2825:4:25", + "nodeType": "VariableDeclaration", + "scope": 29708, + "src": "2806:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29696, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2806:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29697, + "nodeType": "ArrayTypeName", + "src": "2806:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29700, + "mutability": "mutable", + "name": "to", + "nameLocation": "2839:2:25", + "nodeType": "VariableDeclaration", + "scope": 29708, + "src": "2831:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29699, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2831:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29702, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2848:8:25", + "nodeType": "VariableDeclaration", + "scope": 29708, + "src": "2843:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29701, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2843:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2771:86:25" + }, + "returnParameters": { + "id": 29707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29706, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2908:7:25", + "nodeType": "VariableDeclaration", + "scope": 29708, + "src": "2894:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29704, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2894:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29705, + "nodeType": "ArrayTypeName", + "src": "2894:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2893:23:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29723, + "nodeType": "FunctionDefinition", + "src": "2923:175:25", + "nodes": [], + "functionSelector": "fb3bdb41", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapETHForExactTokens", + "nameLocation": "2932:21:25", + "parameters": { + "id": 29718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29710, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "2959:9:25", + "nodeType": "VariableDeclaration", + "scope": 29723, + "src": "2954:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29709, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2954:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29713, + "mutability": "mutable", + "name": "path", + "nameLocation": "2989:4:25", + "nodeType": "VariableDeclaration", + "scope": 29723, + "src": "2970:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29711, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2970:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29712, + "nodeType": "ArrayTypeName", + "src": "2970:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29715, + "mutability": "mutable", + "name": "to", + "nameLocation": "3003:2:25", + "nodeType": "VariableDeclaration", + "scope": 29723, + "src": "2995:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29714, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2995:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29717, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "3012:8:25", + "nodeType": "VariableDeclaration", + "scope": 29723, + "src": "3007:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29716, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3007:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2953:68:25" + }, + "returnParameters": { + "id": 29722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29721, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "3089:7:25", + "nodeType": "VariableDeclaration", + "scope": 29723, + "src": "3075:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29719, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3075:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29720, + "nodeType": "ArrayTypeName", + "src": "3075:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "3074:23:25" + }, + "scope": 29779, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29734, + "nodeType": "FunctionDefinition", + "src": "3106:96:25", + "nodes": [], + "functionSelector": "ad615dec", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "quote", + "nameLocation": "3115:5:25", + "parameters": { + "id": 29730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29725, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "3126:7:25", + "nodeType": "VariableDeclaration", + "scope": 29734, + "src": "3121:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29724, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3121:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29727, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "3140:8:25", + "nodeType": "VariableDeclaration", + "scope": 29734, + "src": "3135:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29726, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3135:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29729, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "3155:8:25", + "nodeType": "VariableDeclaration", + "scope": 29734, + "src": "3150:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29728, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3150:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3120:44:25" + }, + "returnParameters": { + "id": 29733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29732, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "3193:7:25", + "nodeType": "VariableDeclaration", + "scope": 29734, + "src": "3188:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29731, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3188:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3187:14:25" + }, + "scope": 29779, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29745, + "nodeType": "FunctionDefinition", + "src": "3208:109:25", + "nodes": [], + "functionSelector": "054d50d4", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAmountOut", + "nameLocation": "3217:12:25", + "parameters": { + "id": 29741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29736, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "3235:8:25", + "nodeType": "VariableDeclaration", + "scope": 29745, + "src": "3230:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29735, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3230:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29738, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "3250:9:25", + "nodeType": "VariableDeclaration", + "scope": 29745, + "src": "3245:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29737, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3245:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29740, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "3266:10:25", + "nodeType": "VariableDeclaration", + "scope": 29745, + "src": "3261:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29739, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3261:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3229:48:25" + }, + "returnParameters": { + "id": 29744, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29743, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "3306:9:25", + "nodeType": "VariableDeclaration", + "scope": 29745, + "src": "3301:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29742, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3301:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3300:16:25" + }, + "scope": 29779, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29756, + "nodeType": "FunctionDefinition", + "src": "3323:108:25", + "nodes": [], + "functionSelector": "85f8c259", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAmountIn", + "nameLocation": "3332:11:25", + "parameters": { + "id": 29752, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29747, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "3349:9:25", + "nodeType": "VariableDeclaration", + "scope": 29756, + "src": "3344:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29746, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3344:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29749, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "3365:9:25", + "nodeType": "VariableDeclaration", + "scope": 29756, + "src": "3360:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29748, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3360:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29751, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "3381:10:25", + "nodeType": "VariableDeclaration", + "scope": 29756, + "src": "3376:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29750, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3376:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3343:49:25" + }, + "returnParameters": { + "id": 29755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29754, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "3421:8:25", + "nodeType": "VariableDeclaration", + "scope": 29756, + "src": "3416:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29753, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3416:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3415:15:25" + }, + "scope": 29779, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29767, + "nodeType": "FunctionDefinition", + "src": "3437:109:25", + "nodes": [], + "functionSelector": "d06ca61f", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAmountsOut", + "nameLocation": "3446:13:25", + "parameters": { + "id": 29762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29758, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "3465:8:25", + "nodeType": "VariableDeclaration", + "scope": 29767, + "src": "3460:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29757, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3460:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29761, + "mutability": "mutable", + "name": "path", + "nameLocation": "3494:4:25", + "nodeType": "VariableDeclaration", + "scope": 29767, + "src": "3475:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29759, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3475:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29760, + "nodeType": "ArrayTypeName", + "src": "3475:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "3459:40:25" + }, + "returnParameters": { + "id": 29766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29765, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "3537:7:25", + "nodeType": "VariableDeclaration", + "scope": 29767, + "src": "3523:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29763, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3523:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29764, + "nodeType": "ArrayTypeName", + "src": "3523:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "3522:23:25" + }, + "scope": 29779, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29778, + "nodeType": "FunctionDefinition", + "src": "3552:109:25", + "nodes": [], + "functionSelector": "1f00ca74", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAmountsIn", + "nameLocation": "3561:12:25", + "parameters": { + "id": 29773, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29769, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "3579:9:25", + "nodeType": "VariableDeclaration", + "scope": 29778, + "src": "3574:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29768, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3574:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29772, + "mutability": "mutable", + "name": "path", + "nameLocation": "3609:4:25", + "nodeType": "VariableDeclaration", + "scope": 29778, + "src": "3590:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29770, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3590:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29771, + "nodeType": "ArrayTypeName", + "src": "3590:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "3573:41:25" + }, + "returnParameters": { + "id": 29777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29776, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "3652:7:25", + "nodeType": "VariableDeclaration", + "scope": 29778, + "src": "3638:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29774, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3638:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29775, + "nodeType": "ArrayTypeName", + "src": "3638:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "3637:23:25" + }, + "scope": 29779, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IUniswapV2Router01", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29779 + ], + "name": "IUniswapV2Router01", + "nameLocation": "83:18:25", + "scope": 29865, + "usedErrors": [] + }, + { + "id": 29864, + "nodeType": "ContractDefinition", + "src": "3668:1262:25", + "nodes": [ + { + "id": 29798, + "nodeType": "FunctionDefinition", + "src": "3726:250:25", + "nodes": [], + "functionSelector": "af2979eb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityETHSupportingFeeOnTransferTokens", + "nameLocation": "3735:47:25", + "parameters": { + "id": 29794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29783, + "mutability": "mutable", + "name": "token", + "nameLocation": "3801:5:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3793:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29782, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3793:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29785, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "3822:9:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3817:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29784, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3817:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29787, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "3847:14:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3842:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29786, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3842:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29789, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "3877:12:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3872:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29788, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3872:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29791, + "mutability": "mutable", + "name": "to", + "nameLocation": "3908:2:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3900:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29790, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3900:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29793, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "3926:8:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3921:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29792, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3921:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3782:159:25" + }, + "returnParameters": { + "id": 29797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29796, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "3965:9:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3960:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3960:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3959:16:25" + }, + "scope": 29864, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29823, + "nodeType": "FunctionDefinition", + "src": "3982:317:25", + "nodes": [], + "functionSelector": "5b0d5984", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + "nameLocation": "3991:57:25", + "parameters": { + "id": 29819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29800, + "mutability": "mutable", + "name": "token", + "nameLocation": "4067:5:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4059:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29799, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4059:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29802, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "4088:9:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4083:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29801, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4083:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29804, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "4113:14:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4108:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29803, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4108:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29806, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "4143:12:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4138:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29805, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4138:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29808, + "mutability": "mutable", + "name": "to", + "nameLocation": "4174:2:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4166:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4166:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29810, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "4192:8:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4187:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29809, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4187:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29812, + "mutability": "mutable", + "name": "approveMax", + "nameLocation": "4216:10:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4211:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29811, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4211:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29814, + "mutability": "mutable", + "name": "v", + "nameLocation": "4234:1:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4228:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 29813, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4228:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29816, + "mutability": "mutable", + "name": "r", + "nameLocation": "4245:1:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4237:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29815, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4237:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29818, + "mutability": "mutable", + "name": "s", + "nameLocation": "4256:1:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4248:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29817, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4248:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4048:216:25" + }, + "returnParameters": { + "id": 29822, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29821, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "4288:9:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4283:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29820, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4283:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:16:25" + }, + "scope": 29864, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29837, + "nodeType": "FunctionDefinition", + "src": "4307:210:25", + "nodes": [], + "functionSelector": "5c11d795", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", + "nameLocation": "4316:53:25", + "parameters": { + "id": 29835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29825, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "4385:8:25", + "nodeType": "VariableDeclaration", + "scope": 29837, + "src": "4380:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29824, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4380:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29827, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "4409:12:25", + "nodeType": "VariableDeclaration", + "scope": 29837, + "src": "4404:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29826, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4404:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29830, + "mutability": "mutable", + "name": "path", + "nameLocation": "4451:4:25", + "nodeType": "VariableDeclaration", + "scope": 29837, + "src": "4432:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4432:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29829, + "nodeType": "ArrayTypeName", + "src": "4432:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29832, + "mutability": "mutable", + "name": "to", + "nameLocation": "4474:2:25", + "nodeType": "VariableDeclaration", + "scope": 29837, + "src": "4466:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29831, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4466:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29834, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "4492:8:25", + "nodeType": "VariableDeclaration", + "scope": 29837, + "src": "4487:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29833, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4487:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4369:138:25" + }, + "returnParameters": { + "id": 29836, + "nodeType": "ParameterList", + "parameters": [], + "src": "4516:0:25" + }, + "scope": 29864, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29849, + "nodeType": "FunctionDefinition", + "src": "4523:191:25", + "nodes": [], + "functionSelector": "b6f9de95", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", + "nameLocation": "4532:50:25", + "parameters": { + "id": 29847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29839, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "4598:12:25", + "nodeType": "VariableDeclaration", + "scope": 29849, + "src": "4593:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29838, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4593:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29842, + "mutability": "mutable", + "name": "path", + "nameLocation": "4640:4:25", + "nodeType": "VariableDeclaration", + "scope": 29849, + "src": "4621:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4621:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29841, + "nodeType": "ArrayTypeName", + "src": "4621:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29844, + "mutability": "mutable", + "name": "to", + "nameLocation": "4663:2:25", + "nodeType": "VariableDeclaration", + "scope": 29849, + "src": "4655:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29843, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4655:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29846, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "4681:8:25", + "nodeType": "VariableDeclaration", + "scope": 29849, + "src": "4676:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29845, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4676:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4582:114:25" + }, + "returnParameters": { + "id": 29848, + "nodeType": "ParameterList", + "parameters": [], + "src": "4713:0:25" + }, + "scope": 29864, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29863, + "nodeType": "FunctionDefinition", + "src": "4720:207:25", + "nodes": [], + "functionSelector": "791ac947", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", + "nameLocation": "4729:50:25", + "parameters": { + "id": 29861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29851, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "4795:8:25", + "nodeType": "VariableDeclaration", + "scope": 29863, + "src": "4790:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29850, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4790:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29853, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "4819:12:25", + "nodeType": "VariableDeclaration", + "scope": 29863, + "src": "4814:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29852, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4814:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29856, + "mutability": "mutable", + "name": "path", + "nameLocation": "4861:4:25", + "nodeType": "VariableDeclaration", + "scope": 29863, + "src": "4842:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4842:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29855, + "nodeType": "ArrayTypeName", + "src": "4842:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29858, + "mutability": "mutable", + "name": "to", + "nameLocation": "4884:2:25", + "nodeType": "VariableDeclaration", + "scope": 29863, + "src": "4876:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4876:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29860, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "4902:8:25", + "nodeType": "VariableDeclaration", + "scope": 29863, + "src": "4897:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29859, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4897:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4779:138:25" + }, + "returnParameters": { + "id": 29862, + "nodeType": "ParameterList", + "parameters": [], + "src": "4926:0:25" + }, + "scope": 29864, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 29780, + "name": "IUniswapV2Router01", + "nameLocations": [ + "3700:18:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29779, + "src": "3700:18:25" + }, + "id": 29781, + "nodeType": "InheritanceSpecifier", + "src": "3700:18:25" + } + ], + "canonicalName": "IUniswapV2Router02", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29864, + 29779 + ], + "name": "IUniswapV2Router02", + "nameLocation": "3678:18:25", + "scope": 29865, + "usedErrors": [] + } + ], + "license": "GPL-3.0-or-later" + }, + "id": 25 +} \ No newline at end of file diff --git a/out/IUniswapV2Router.sol/IUniswapV2Router02.json b/out/IUniswapV2Router.sol/IUniswapV2Router02.json new file mode 100644 index 0000000..2922271 --- /dev/null +++ b/out/IUniswapV2Router.sol/IUniswapV2Router02.json @@ -0,0 +1,6998 @@ +{ + "abi": [ + { + "inputs": [], + "name": "WETH", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountADesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountAMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "addLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountTokenDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "addLiquidityETH", + "outputs": [ + { + "internalType": "uint256", + "name": "amountToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "factory", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveOut", + "type": "uint256" + } + ], + "name": "getAmountIn", + "outputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveOut", + "type": "uint256" + } + ], + "name": "getAmountOut", + "outputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "getAmountsIn", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "getAmountsOut", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveB", + "type": "uint256" + } + ], + "name": "quote", + "outputs": [ + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountAMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "removeLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "removeLiquidityETH", + "outputs": [ + { + "internalType": "uint256", + "name": "amountToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "removeLiquidityETHSupportingFeeOnTransferTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "approveMax", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "removeLiquidityETHWithPermit", + "outputs": [ + { + "internalType": "uint256", + "name": "amountToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "approveMax", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountAMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "approveMax", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "removeLiquidityWithPermit", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapETHForExactTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapExactETHForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapExactTokensForETH", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapExactTokensForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountInMax", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapTokensForExactETH", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountInMax", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "name": "swapTokensForExactTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "WETH()": "ad5c4648", + "addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": "e8e33700", + "addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "f305d719", + "factory()": "c45a0155", + "getAmountIn(uint256,uint256,uint256)": "85f8c259", + "getAmountOut(uint256,uint256,uint256)": "054d50d4", + "getAmountsIn(uint256,address[])": "1f00ca74", + "getAmountsOut(uint256,address[])": "d06ca61f", + "quote(uint256,uint256,uint256)": "ad615dec", + "removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": "baa2abde", + "removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "02751cec", + "removeLiquidityETHSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)": "af2979eb", + "removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "ded9382a", + "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "5b0d5984", + "removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "2195995c", + "swapETHForExactTokens(uint256,address[],address,uint256)": "fb3bdb41", + "swapExactETHForTokens(uint256,address[],address,uint256)": "7ff36ab5", + "swapExactETHForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)": "b6f9de95", + "swapExactTokensForETH(uint256,uint256,address[],address,uint256)": "18cbafe5", + "swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": "791ac947", + "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": "38ed1739", + "swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": "5c11d795", + "swapTokensForExactETH(uint256,uint256,address[],address,uint256)": "4a25d94a", + "swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": "8803dbee" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidityETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsIn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveB\",\"type\":\"uint256\"}],\"name\":\"quote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityETHSupportingFeeOnTransferTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityETHWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapETHForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactETHForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactETHForTokensSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForETH\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForETHSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactETH\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IUniswapV2Router.sol\":\"IUniswapV2Router02\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/interfaces/IUniswapV2Router.sol\":{\"keccak256\":\"0xd6f5421763c422b31d0d448ddb3406628b7119a0230d05c82ac932816374f4e4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0413b1f197957edd78b044d2342ef527c18f768d678967a085a4820b4b6e1cee\",\"dweb:/ipfs/QmTekfGmFArRoMM2HQ5hrqxqsDMfahfVa7tc7ddYk7EsD5\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "pure", + "type": "function", + "name": "WETH", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountADesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountAMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "addLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountTokenDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "addLiquidityETH", + "outputs": [ + { + "internalType": "uint256", + "name": "amountToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "pure", + "type": "function", + "name": "factory", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveOut", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function", + "name": "getAmountIn", + "outputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveOut", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function", + "name": "getAmountOut", + "outputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getAmountsIn", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getAmountsOut", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reserveB", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function", + "name": "quote", + "outputs": [ + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountAMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "removeLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "removeLiquidityETH", + "outputs": [ + { + "internalType": "uint256", + "name": "amountToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "removeLiquidityETHSupportingFeeOnTransferTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "approveMax", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "removeLiquidityETHWithPermit", + "outputs": [ + { + "internalType": "uint256", + "name": "amountToken", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountTokenMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountETHMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "approveMax", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountETH", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountAMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBMin", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "approveMax", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "removeLiquidityWithPermit", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "swapETHForExactTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "swapExactETHForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "swapExactETHForTokensSupportingFeeOnTransferTokens" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "swapExactTokensForETH", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "swapExactTokensForETHSupportingFeeOnTransferTokens" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "swapExactTokensForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountInMax", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "swapTokensForExactETH", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountInMax", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "swapTokensForExactTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/interfaces/IUniswapV2Router.sol": "IUniswapV2Router02" + }, + "libraries": {} + }, + "sources": { + "src/interfaces/IUniswapV2Router.sol": { + "keccak256": "0xd6f5421763c422b31d0d448ddb3406628b7119a0230d05c82ac932816374f4e4", + "urls": [ + "bzz-raw://0413b1f197957edd78b044d2342ef527c18f768d678967a085a4820b4b6e1cee", + "dweb:/ipfs/QmTekfGmFArRoMM2HQ5hrqxqsDMfahfVa7tc7ddYk7EsD5" + ], + "license": "GPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/interfaces/IUniswapV2Router.sol", + "id": 29865, + "exportedSymbols": { + "IUniswapV2Router01": [ + 29779 + ], + "IUniswapV2Router02": [ + 29864 + ] + }, + "nodeType": "SourceUnit", + "src": "46:4884:25", + "nodes": [ + { + "id": 29473, + "nodeType": "PragmaDirective", + "src": "46:23:25", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ] + }, + { + "id": 29779, + "nodeType": "ContractDefinition", + "src": "73:3591:25", + "nodes": [ + { + "id": 29478, + "nodeType": "FunctionDefinition", + "src": "109:51:25", + "nodes": [], + "functionSelector": "c45a0155", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nameLocation": "118:7:25", + "parameters": { + "id": 29474, + "nodeType": "ParameterList", + "parameters": [], + "src": "125:2:25" + }, + "returnParameters": { + "id": 29477, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29476, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29478, + "src": "151:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29475, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "151:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "150:9:25" + }, + "scope": 29779, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29483, + "nodeType": "FunctionDefinition", + "src": "166:48:25", + "nodes": [], + "functionSelector": "ad5c4648", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "WETH", + "nameLocation": "175:4:25", + "parameters": { + "id": 29479, + "nodeType": "ParameterList", + "parameters": [], + "src": "179:2:25" + }, + "returnParameters": { + "id": 29482, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29481, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29483, + "src": "205:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "205:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "204:9:25" + }, + "scope": 29779, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29508, + "nodeType": "FunctionDefinition", + "src": "222:298:25", + "nodes": [], + "functionSelector": "e8e33700", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addLiquidity", + "nameLocation": "231:12:25", + "parameters": { + "id": 29500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29485, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "262:6:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "254:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29484, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "254:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29487, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "287:6:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "279:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "279:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29489, + "mutability": "mutable", + "name": "amountADesired", + "nameLocation": "309:14:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "304:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29488, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "304:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29491, + "mutability": "mutable", + "name": "amountBDesired", + "nameLocation": "339:14:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "334:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29490, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "334:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29493, + "mutability": "mutable", + "name": "amountAMin", + "nameLocation": "369:10:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "364:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29492, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "364:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29495, + "mutability": "mutable", + "name": "amountBMin", + "nameLocation": "395:10:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "390:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29494, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "390:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29497, + "mutability": "mutable", + "name": "to", + "nameLocation": "424:2:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "416:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29496, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "416:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29499, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "442:8:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "437:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29498, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "437:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "243:214:25" + }, + "returnParameters": { + "id": 29507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29502, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "481:7:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "476:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29501, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "476:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29504, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "495:7:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "490:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29503, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "490:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29506, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "509:9:25", + "nodeType": "VariableDeclaration", + "scope": 29508, + "src": "504:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29505, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "504:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "475:44:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29529, + "nodeType": "FunctionDefinition", + "src": "526:269:25", + "nodes": [], + "functionSelector": "f305d719", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addLiquidityETH", + "nameLocation": "535:15:25", + "parameters": { + "id": 29521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29510, + "mutability": "mutable", + "name": "token", + "nameLocation": "569:5:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "561:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "561:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29512, + "mutability": "mutable", + "name": "amountTokenDesired", + "nameLocation": "590:18:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "585:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29511, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "585:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29514, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "624:14:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "619:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29513, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "619:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29516, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "654:12:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "649:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29515, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "649:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29518, + "mutability": "mutable", + "name": "to", + "nameLocation": "685:2:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "677:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "677:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29520, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "703:8:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "698:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29519, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "698:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "550:168:25" + }, + "returnParameters": { + "id": 29528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29523, + "mutability": "mutable", + "name": "amountToken", + "nameLocation": "750:11:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "745:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29522, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "745:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29525, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "768:9:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "763:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29524, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "763:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29527, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "784:9:25", + "nodeType": "VariableDeclaration", + "scope": 29529, + "src": "779:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29526, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "779:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "744:50:25" + }, + "scope": 29779, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29550, + "nodeType": "FunctionDefinition", + "src": "801:250:25", + "nodes": [], + "functionSelector": "baa2abde", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidity", + "nameLocation": "810:15:25", + "parameters": { + "id": 29544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29531, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "844:6:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "836:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "836:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29533, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "869:6:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "861:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "861:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29535, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "891:9:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "886:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29534, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "886:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29537, + "mutability": "mutable", + "name": "amountAMin", + "nameLocation": "916:10:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "911:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29536, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "911:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29539, + "mutability": "mutable", + "name": "amountBMin", + "nameLocation": "942:10:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "937:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29538, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "937:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29541, + "mutability": "mutable", + "name": "to", + "nameLocation": "971:2:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "963:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "963:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29543, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "989:8:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "984:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29542, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "984:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "825:179:25" + }, + "returnParameters": { + "id": 29549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29546, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "1028:7:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "1023:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29545, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1023:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29548, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "1042:7:25", + "nodeType": "VariableDeclaration", + "scope": 29550, + "src": "1037:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29547, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1037:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1022:28:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29569, + "nodeType": "FunctionDefinition", + "src": "1057:239:25", + "nodes": [], + "functionSelector": "02751cec", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityETH", + "nameLocation": "1066:18:25", + "parameters": { + "id": 29563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29552, + "mutability": "mutable", + "name": "token", + "nameLocation": "1103:5:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1095:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29551, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1095:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29554, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1124:9:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1119:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29553, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1119:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29556, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "1149:14:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1144:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29555, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1144:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29558, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "1179:12:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1174:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29557, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1174:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29560, + "mutability": "mutable", + "name": "to", + "nameLocation": "1210:2:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1202:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29559, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1202:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29562, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1228:8:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1223:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29561, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1223:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1084:159:25" + }, + "returnParameters": { + "id": 29568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29565, + "mutability": "mutable", + "name": "amountToken", + "nameLocation": "1267:11:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1262:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29564, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1262:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29567, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "1285:9:25", + "nodeType": "VariableDeclaration", + "scope": 29569, + "src": "1280:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29566, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1280:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1261:34:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29598, + "nodeType": "FunctionDefinition", + "src": "1302:317:25", + "nodes": [], + "functionSelector": "2195995c", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityWithPermit", + "nameLocation": "1311:25:25", + "parameters": { + "id": 29592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29571, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "1355:6:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1347:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1347:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29573, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "1380:6:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1372:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29572, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1372:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29575, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1402:9:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1397:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29574, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1397:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29577, + "mutability": "mutable", + "name": "amountAMin", + "nameLocation": "1427:10:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1422:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29576, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1422:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29579, + "mutability": "mutable", + "name": "amountBMin", + "nameLocation": "1453:10:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1448:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29578, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1448:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29581, + "mutability": "mutable", + "name": "to", + "nameLocation": "1482:2:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1474:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29580, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1474:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29583, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1500:8:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1495:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29582, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1495:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29585, + "mutability": "mutable", + "name": "approveMax", + "nameLocation": "1524:10:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1519:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29584, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1519:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29587, + "mutability": "mutable", + "name": "v", + "nameLocation": "1542:1:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1536:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 29586, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1536:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29589, + "mutability": "mutable", + "name": "r", + "nameLocation": "1553:1:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1545:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29588, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1545:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29591, + "mutability": "mutable", + "name": "s", + "nameLocation": "1564:1:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1556:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29590, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1556:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1336:236:25" + }, + "returnParameters": { + "id": 29597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29594, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "1596:7:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1591:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29593, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1591:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29596, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "1610:7:25", + "nodeType": "VariableDeclaration", + "scope": 29598, + "src": "1605:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29595, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1605:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1590:28:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29625, + "nodeType": "FunctionDefinition", + "src": "1625:306:25", + "nodes": [], + "functionSelector": "ded9382a", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityETHWithPermit", + "nameLocation": "1634:28:25", + "parameters": { + "id": 29619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29600, + "mutability": "mutable", + "name": "token", + "nameLocation": "1681:5:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1673:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1673:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29602, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1702:9:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1697:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1697:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29604, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "1727:14:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1722:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29603, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1722:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29606, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "1757:12:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1752:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29605, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1752:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29608, + "mutability": "mutable", + "name": "to", + "nameLocation": "1788:2:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1780:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1780:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29610, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1806:8:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1801:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29609, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1801:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29612, + "mutability": "mutable", + "name": "approveMax", + "nameLocation": "1830:10:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1825:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29611, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1825:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29614, + "mutability": "mutable", + "name": "v", + "nameLocation": "1848:1:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1842:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 29613, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1842:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29616, + "mutability": "mutable", + "name": "r", + "nameLocation": "1859:1:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1851:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29615, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1851:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29618, + "mutability": "mutable", + "name": "s", + "nameLocation": "1870:1:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1862:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29617, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1862:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1662:216:25" + }, + "returnParameters": { + "id": 29624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29621, + "mutability": "mutable", + "name": "amountToken", + "nameLocation": "1902:11:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1897:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29620, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1897:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29623, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "1920:9:25", + "nodeType": "VariableDeclaration", + "scope": 29625, + "src": "1915:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29622, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1915:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1896:34:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29642, + "nodeType": "FunctionDefinition", + "src": "1937:213:25", + "nodes": [], + "functionSelector": "38ed1739", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForTokens", + "nameLocation": "1946:24:25", + "parameters": { + "id": 29637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29627, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "1986:8:25", + "nodeType": "VariableDeclaration", + "scope": 29642, + "src": "1981:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29626, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1981:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29629, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "2010:12:25", + "nodeType": "VariableDeclaration", + "scope": 29642, + "src": "2005:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29628, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2005:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29632, + "mutability": "mutable", + "name": "path", + "nameLocation": "2052:4:25", + "nodeType": "VariableDeclaration", + "scope": 29642, + "src": "2033:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2033:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29631, + "nodeType": "ArrayTypeName", + "src": "2033:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29634, + "mutability": "mutable", + "name": "to", + "nameLocation": "2075:2:25", + "nodeType": "VariableDeclaration", + "scope": 29642, + "src": "2067:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2067:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29636, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2093:8:25", + "nodeType": "VariableDeclaration", + "scope": 29642, + "src": "2088:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29635, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2088:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1970:138:25" + }, + "returnParameters": { + "id": 29641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29640, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2141:7:25", + "nodeType": "VariableDeclaration", + "scope": 29642, + "src": "2127:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29638, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2127:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29639, + "nodeType": "ArrayTypeName", + "src": "2127:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2126:23:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29659, + "nodeType": "FunctionDefinition", + "src": "2156:213:25", + "nodes": [], + "functionSelector": "8803dbee", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapTokensForExactTokens", + "nameLocation": "2165:24:25", + "parameters": { + "id": 29654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29644, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "2205:9:25", + "nodeType": "VariableDeclaration", + "scope": 29659, + "src": "2200:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29643, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2200:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29646, + "mutability": "mutable", + "name": "amountInMax", + "nameLocation": "2230:11:25", + "nodeType": "VariableDeclaration", + "scope": 29659, + "src": "2225:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29645, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2225:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29649, + "mutability": "mutable", + "name": "path", + "nameLocation": "2271:4:25", + "nodeType": "VariableDeclaration", + "scope": 29659, + "src": "2252:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29647, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2252:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29648, + "nodeType": "ArrayTypeName", + "src": "2252:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29651, + "mutability": "mutable", + "name": "to", + "nameLocation": "2294:2:25", + "nodeType": "VariableDeclaration", + "scope": 29659, + "src": "2286:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29653, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2312:8:25", + "nodeType": "VariableDeclaration", + "scope": 29659, + "src": "2307:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29652, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2307:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2189:138:25" + }, + "returnParameters": { + "id": 29658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29657, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2360:7:25", + "nodeType": "VariableDeclaration", + "scope": 29659, + "src": "2346:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29655, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2346:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29656, + "nodeType": "ArrayTypeName", + "src": "2346:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2345:23:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29674, + "nodeType": "FunctionDefinition", + "src": "2375:178:25", + "nodes": [], + "functionSelector": "7ff36ab5", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactETHForTokens", + "nameLocation": "2384:21:25", + "parameters": { + "id": 29669, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29661, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "2411:12:25", + "nodeType": "VariableDeclaration", + "scope": 29674, + "src": "2406:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29660, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2406:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29664, + "mutability": "mutable", + "name": "path", + "nameLocation": "2444:4:25", + "nodeType": "VariableDeclaration", + "scope": 29674, + "src": "2425:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2425:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29663, + "nodeType": "ArrayTypeName", + "src": "2425:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29666, + "mutability": "mutable", + "name": "to", + "nameLocation": "2458:2:25", + "nodeType": "VariableDeclaration", + "scope": 29674, + "src": "2450:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2450:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29668, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2467:8:25", + "nodeType": "VariableDeclaration", + "scope": 29674, + "src": "2462:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29667, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2462:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2405:71:25" + }, + "returnParameters": { + "id": 29673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29672, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2544:7:25", + "nodeType": "VariableDeclaration", + "scope": 29674, + "src": "2530:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29670, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2530:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29671, + "nodeType": "ArrayTypeName", + "src": "2530:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2529:23:25" + }, + "scope": 29779, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29691, + "nodeType": "FunctionDefinition", + "src": "2559:176:25", + "nodes": [], + "functionSelector": "4a25d94a", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapTokensForExactETH", + "nameLocation": "2568:21:25", + "parameters": { + "id": 29686, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29676, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "2595:9:25", + "nodeType": "VariableDeclaration", + "scope": 29691, + "src": "2590:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29675, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2590:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29678, + "mutability": "mutable", + "name": "amountInMax", + "nameLocation": "2611:11:25", + "nodeType": "VariableDeclaration", + "scope": 29691, + "src": "2606:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29677, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2606:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29681, + "mutability": "mutable", + "name": "path", + "nameLocation": "2643:4:25", + "nodeType": "VariableDeclaration", + "scope": 29691, + "src": "2624:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29679, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2624:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29680, + "nodeType": "ArrayTypeName", + "src": "2624:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29683, + "mutability": "mutable", + "name": "to", + "nameLocation": "2657:2:25", + "nodeType": "VariableDeclaration", + "scope": 29691, + "src": "2649:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2649:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29685, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2666:8:25", + "nodeType": "VariableDeclaration", + "scope": 29691, + "src": "2661:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29684, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2661:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2589:86:25" + }, + "returnParameters": { + "id": 29690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29689, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2726:7:25", + "nodeType": "VariableDeclaration", + "scope": 29691, + "src": "2712:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29687, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2712:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29688, + "nodeType": "ArrayTypeName", + "src": "2712:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2711:23:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29708, + "nodeType": "FunctionDefinition", + "src": "2741:176:25", + "nodes": [], + "functionSelector": "18cbafe5", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForETH", + "nameLocation": "2750:21:25", + "parameters": { + "id": 29703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29693, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "2777:8:25", + "nodeType": "VariableDeclaration", + "scope": 29708, + "src": "2772:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29692, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2772:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29695, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "2792:12:25", + "nodeType": "VariableDeclaration", + "scope": 29708, + "src": "2787:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29694, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2787:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29698, + "mutability": "mutable", + "name": "path", + "nameLocation": "2825:4:25", + "nodeType": "VariableDeclaration", + "scope": 29708, + "src": "2806:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29696, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2806:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29697, + "nodeType": "ArrayTypeName", + "src": "2806:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29700, + "mutability": "mutable", + "name": "to", + "nameLocation": "2839:2:25", + "nodeType": "VariableDeclaration", + "scope": 29708, + "src": "2831:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29699, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2831:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29702, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "2848:8:25", + "nodeType": "VariableDeclaration", + "scope": 29708, + "src": "2843:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29701, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2843:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2771:86:25" + }, + "returnParameters": { + "id": 29707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29706, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "2908:7:25", + "nodeType": "VariableDeclaration", + "scope": 29708, + "src": "2894:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29704, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2894:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29705, + "nodeType": "ArrayTypeName", + "src": "2894:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2893:23:25" + }, + "scope": 29779, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29723, + "nodeType": "FunctionDefinition", + "src": "2923:175:25", + "nodes": [], + "functionSelector": "fb3bdb41", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapETHForExactTokens", + "nameLocation": "2932:21:25", + "parameters": { + "id": 29718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29710, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "2959:9:25", + "nodeType": "VariableDeclaration", + "scope": 29723, + "src": "2954:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29709, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2954:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29713, + "mutability": "mutable", + "name": "path", + "nameLocation": "2989:4:25", + "nodeType": "VariableDeclaration", + "scope": 29723, + "src": "2970:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29711, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2970:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29712, + "nodeType": "ArrayTypeName", + "src": "2970:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29715, + "mutability": "mutable", + "name": "to", + "nameLocation": "3003:2:25", + "nodeType": "VariableDeclaration", + "scope": 29723, + "src": "2995:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29714, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2995:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29717, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "3012:8:25", + "nodeType": "VariableDeclaration", + "scope": 29723, + "src": "3007:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29716, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3007:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2953:68:25" + }, + "returnParameters": { + "id": 29722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29721, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "3089:7:25", + "nodeType": "VariableDeclaration", + "scope": 29723, + "src": "3075:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29719, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3075:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29720, + "nodeType": "ArrayTypeName", + "src": "3075:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "3074:23:25" + }, + "scope": 29779, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29734, + "nodeType": "FunctionDefinition", + "src": "3106:96:25", + "nodes": [], + "functionSelector": "ad615dec", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "quote", + "nameLocation": "3115:5:25", + "parameters": { + "id": 29730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29725, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "3126:7:25", + "nodeType": "VariableDeclaration", + "scope": 29734, + "src": "3121:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29724, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3121:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29727, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "3140:8:25", + "nodeType": "VariableDeclaration", + "scope": 29734, + "src": "3135:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29726, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3135:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29729, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "3155:8:25", + "nodeType": "VariableDeclaration", + "scope": 29734, + "src": "3150:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29728, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3150:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3120:44:25" + }, + "returnParameters": { + "id": 29733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29732, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "3193:7:25", + "nodeType": "VariableDeclaration", + "scope": 29734, + "src": "3188:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29731, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3188:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3187:14:25" + }, + "scope": 29779, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29745, + "nodeType": "FunctionDefinition", + "src": "3208:109:25", + "nodes": [], + "functionSelector": "054d50d4", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAmountOut", + "nameLocation": "3217:12:25", + "parameters": { + "id": 29741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29736, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "3235:8:25", + "nodeType": "VariableDeclaration", + "scope": 29745, + "src": "3230:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29735, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3230:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29738, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "3250:9:25", + "nodeType": "VariableDeclaration", + "scope": 29745, + "src": "3245:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29737, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3245:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29740, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "3266:10:25", + "nodeType": "VariableDeclaration", + "scope": 29745, + "src": "3261:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29739, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3261:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3229:48:25" + }, + "returnParameters": { + "id": 29744, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29743, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "3306:9:25", + "nodeType": "VariableDeclaration", + "scope": 29745, + "src": "3301:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29742, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3301:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3300:16:25" + }, + "scope": 29779, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29756, + "nodeType": "FunctionDefinition", + "src": "3323:108:25", + "nodes": [], + "functionSelector": "85f8c259", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAmountIn", + "nameLocation": "3332:11:25", + "parameters": { + "id": 29752, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29747, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "3349:9:25", + "nodeType": "VariableDeclaration", + "scope": 29756, + "src": "3344:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29746, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3344:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29749, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "3365:9:25", + "nodeType": "VariableDeclaration", + "scope": 29756, + "src": "3360:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29748, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3360:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29751, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "3381:10:25", + "nodeType": "VariableDeclaration", + "scope": 29756, + "src": "3376:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29750, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3376:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3343:49:25" + }, + "returnParameters": { + "id": 29755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29754, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "3421:8:25", + "nodeType": "VariableDeclaration", + "scope": 29756, + "src": "3416:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29753, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3416:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3415:15:25" + }, + "scope": 29779, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "id": 29767, + "nodeType": "FunctionDefinition", + "src": "3437:109:25", + "nodes": [], + "functionSelector": "d06ca61f", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAmountsOut", + "nameLocation": "3446:13:25", + "parameters": { + "id": 29762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29758, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "3465:8:25", + "nodeType": "VariableDeclaration", + "scope": 29767, + "src": "3460:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29757, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3460:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29761, + "mutability": "mutable", + "name": "path", + "nameLocation": "3494:4:25", + "nodeType": "VariableDeclaration", + "scope": 29767, + "src": "3475:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29759, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3475:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29760, + "nodeType": "ArrayTypeName", + "src": "3475:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "3459:40:25" + }, + "returnParameters": { + "id": 29766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29765, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "3537:7:25", + "nodeType": "VariableDeclaration", + "scope": 29767, + "src": "3523:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29763, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3523:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29764, + "nodeType": "ArrayTypeName", + "src": "3523:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "3522:23:25" + }, + "scope": 29779, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 29778, + "nodeType": "FunctionDefinition", + "src": "3552:109:25", + "nodes": [], + "functionSelector": "1f00ca74", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAmountsIn", + "nameLocation": "3561:12:25", + "parameters": { + "id": 29773, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29769, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "3579:9:25", + "nodeType": "VariableDeclaration", + "scope": 29778, + "src": "3574:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29768, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3574:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29772, + "mutability": "mutable", + "name": "path", + "nameLocation": "3609:4:25", + "nodeType": "VariableDeclaration", + "scope": 29778, + "src": "3590:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29770, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3590:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29771, + "nodeType": "ArrayTypeName", + "src": "3590:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "3573:41:25" + }, + "returnParameters": { + "id": 29777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29776, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "3652:7:25", + "nodeType": "VariableDeclaration", + "scope": 29778, + "src": "3638:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 29774, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3638:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29775, + "nodeType": "ArrayTypeName", + "src": "3638:6:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "3637:23:25" + }, + "scope": 29779, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IUniswapV2Router01", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29779 + ], + "name": "IUniswapV2Router01", + "nameLocation": "83:18:25", + "scope": 29865, + "usedErrors": [] + }, + { + "id": 29864, + "nodeType": "ContractDefinition", + "src": "3668:1262:25", + "nodes": [ + { + "id": 29798, + "nodeType": "FunctionDefinition", + "src": "3726:250:25", + "nodes": [], + "functionSelector": "af2979eb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityETHSupportingFeeOnTransferTokens", + "nameLocation": "3735:47:25", + "parameters": { + "id": 29794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29783, + "mutability": "mutable", + "name": "token", + "nameLocation": "3801:5:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3793:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29782, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3793:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29785, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "3822:9:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3817:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29784, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3817:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29787, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "3847:14:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3842:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29786, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3842:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29789, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "3877:12:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3872:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29788, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3872:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29791, + "mutability": "mutable", + "name": "to", + "nameLocation": "3908:2:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3900:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29790, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3900:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29793, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "3926:8:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3921:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29792, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3921:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3782:159:25" + }, + "returnParameters": { + "id": 29797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29796, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "3965:9:25", + "nodeType": "VariableDeclaration", + "scope": 29798, + "src": "3960:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3960:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3959:16:25" + }, + "scope": 29864, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29823, + "nodeType": "FunctionDefinition", + "src": "3982:317:25", + "nodes": [], + "functionSelector": "5b0d5984", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + "nameLocation": "3991:57:25", + "parameters": { + "id": 29819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29800, + "mutability": "mutable", + "name": "token", + "nameLocation": "4067:5:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4059:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29799, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4059:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29802, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "4088:9:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4083:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29801, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4083:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29804, + "mutability": "mutable", + "name": "amountTokenMin", + "nameLocation": "4113:14:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4108:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29803, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4108:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29806, + "mutability": "mutable", + "name": "amountETHMin", + "nameLocation": "4143:12:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4138:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29805, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4138:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29808, + "mutability": "mutable", + "name": "to", + "nameLocation": "4174:2:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4166:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4166:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29810, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "4192:8:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4187:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29809, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4187:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29812, + "mutability": "mutable", + "name": "approveMax", + "nameLocation": "4216:10:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4211:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29811, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4211:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29814, + "mutability": "mutable", + "name": "v", + "nameLocation": "4234:1:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4228:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 29813, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4228:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29816, + "mutability": "mutable", + "name": "r", + "nameLocation": "4245:1:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4237:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29815, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4237:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29818, + "mutability": "mutable", + "name": "s", + "nameLocation": "4256:1:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4248:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29817, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4248:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4048:216:25" + }, + "returnParameters": { + "id": 29822, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29821, + "mutability": "mutable", + "name": "amountETH", + "nameLocation": "4288:9:25", + "nodeType": "VariableDeclaration", + "scope": 29823, + "src": "4283:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29820, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4283:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:16:25" + }, + "scope": 29864, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29837, + "nodeType": "FunctionDefinition", + "src": "4307:210:25", + "nodes": [], + "functionSelector": "5c11d795", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens", + "nameLocation": "4316:53:25", + "parameters": { + "id": 29835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29825, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "4385:8:25", + "nodeType": "VariableDeclaration", + "scope": 29837, + "src": "4380:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29824, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4380:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29827, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "4409:12:25", + "nodeType": "VariableDeclaration", + "scope": 29837, + "src": "4404:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29826, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4404:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29830, + "mutability": "mutable", + "name": "path", + "nameLocation": "4451:4:25", + "nodeType": "VariableDeclaration", + "scope": 29837, + "src": "4432:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4432:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29829, + "nodeType": "ArrayTypeName", + "src": "4432:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29832, + "mutability": "mutable", + "name": "to", + "nameLocation": "4474:2:25", + "nodeType": "VariableDeclaration", + "scope": 29837, + "src": "4466:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29831, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4466:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29834, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "4492:8:25", + "nodeType": "VariableDeclaration", + "scope": 29837, + "src": "4487:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29833, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4487:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4369:138:25" + }, + "returnParameters": { + "id": 29836, + "nodeType": "ParameterList", + "parameters": [], + "src": "4516:0:25" + }, + "scope": 29864, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29849, + "nodeType": "FunctionDefinition", + "src": "4523:191:25", + "nodes": [], + "functionSelector": "b6f9de95", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactETHForTokensSupportingFeeOnTransferTokens", + "nameLocation": "4532:50:25", + "parameters": { + "id": 29847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29839, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "4598:12:25", + "nodeType": "VariableDeclaration", + "scope": 29849, + "src": "4593:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29838, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4593:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29842, + "mutability": "mutable", + "name": "path", + "nameLocation": "4640:4:25", + "nodeType": "VariableDeclaration", + "scope": 29849, + "src": "4621:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4621:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29841, + "nodeType": "ArrayTypeName", + "src": "4621:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29844, + "mutability": "mutable", + "name": "to", + "nameLocation": "4663:2:25", + "nodeType": "VariableDeclaration", + "scope": 29849, + "src": "4655:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29843, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4655:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29846, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "4681:8:25", + "nodeType": "VariableDeclaration", + "scope": 29849, + "src": "4676:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29845, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4676:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4582:114:25" + }, + "returnParameters": { + "id": 29848, + "nodeType": "ParameterList", + "parameters": [], + "src": "4713:0:25" + }, + "scope": 29864, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 29863, + "nodeType": "FunctionDefinition", + "src": "4720:207:25", + "nodes": [], + "functionSelector": "791ac947", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForETHSupportingFeeOnTransferTokens", + "nameLocation": "4729:50:25", + "parameters": { + "id": 29861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29851, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "4795:8:25", + "nodeType": "VariableDeclaration", + "scope": 29863, + "src": "4790:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29850, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4790:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29853, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "4819:12:25", + "nodeType": "VariableDeclaration", + "scope": 29863, + "src": "4814:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29852, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4814:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29856, + "mutability": "mutable", + "name": "path", + "nameLocation": "4861:4:25", + "nodeType": "VariableDeclaration", + "scope": 29863, + "src": "4842:23:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 29854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4842:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 29855, + "nodeType": "ArrayTypeName", + "src": "4842:9:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29858, + "mutability": "mutable", + "name": "to", + "nameLocation": "4884:2:25", + "nodeType": "VariableDeclaration", + "scope": 29863, + "src": "4876:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4876:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29860, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "4902:8:25", + "nodeType": "VariableDeclaration", + "scope": 29863, + "src": "4897:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29859, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4897:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4779:138:25" + }, + "returnParameters": { + "id": 29862, + "nodeType": "ParameterList", + "parameters": [], + "src": "4926:0:25" + }, + "scope": 29864, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 29780, + "name": "IUniswapV2Router01", + "nameLocations": [ + "3700:18:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29779, + "src": "3700:18:25" + }, + "id": 29781, + "nodeType": "InheritanceSpecifier", + "src": "3700:18:25" + } + ], + "canonicalName": "IUniswapV2Router02", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29864, + 29779 + ], + "name": "IUniswapV2Router02", + "nameLocation": "3678:18:25", + "scope": 29865, + "usedErrors": [] + } + ], + "license": "GPL-3.0-or-later" + }, + "id": 25 +} \ No newline at end of file diff --git a/out/InterfacesAggregated.sol/ITreasury.json b/out/InterfacesAggregated.sol/ITreasury.json new file mode 100644 index 0000000..7865562 --- /dev/null +++ b/out/InterfacesAggregated.sol/ITreasury.json @@ -0,0 +1,410 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "amt", + "type": "uint256" + } + ], + "name": "updateTaxesAccrued", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "updateTaxesAccrued(uint256)": "755965b8" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"updateTaxesAccrued\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/InterfacesAggregated.sol\":\"ITreasury\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/interfaces/InterfacesAggregated.sol\":{\"keccak256\":\"0xd5e582438e596ce5ce33c207884e973a7b8717212aa9fd21909b8b2d9c467095\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://86a732fe5eb860bed3fc631feb767e2b3145f510c082e64dd062e9b2fca66128\",\"dweb:/ipfs/QmcrieewKPRseM8yyGH529sYqb5A4RGDoZsg5F9tDnnnmr\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "amt", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "updateTaxesAccrued" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/interfaces/InterfacesAggregated.sol": "ITreasury" + }, + "libraries": {} + }, + "sources": { + "src/interfaces/InterfacesAggregated.sol": { + "keccak256": "0xd5e582438e596ce5ce33c207884e973a7b8717212aa9fd21909b8b2d9c467095", + "urls": [ + "bzz-raw://86a732fe5eb860bed3fc631feb767e2b3145f510c082e64dd062e9b2fca66128", + "dweb:/ipfs/QmcrieewKPRseM8yyGH529sYqb5A4RGDoZsg5F9tDnnnmr" + ], + "license": "GPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/interfaces/InterfacesAggregated.sol", + "id": 29889, + "exportedSymbols": { + "ITreasury": [ + 29882 + ], + "IUniswapV2Factory": [ + 29876 + ], + "IVesting": [ + 29888 + ] + }, + "nodeType": "SourceUnit", + "src": "46:332:26", + "nodes": [ + { + "id": 29866, + "nodeType": "PragmaDirective", + "src": "46:23:26", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ] + }, + { + "id": 29876, + "nodeType": "ContractDefinition", + "src": "73:122:26", + "nodes": [ + { + "id": 29875, + "nodeType": "FunctionDefinition", + "src": "108:84:26", + "nodes": [], + "functionSelector": "c9c65396", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nameLocation": "117:10:26", + "parameters": { + "id": 29871, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29868, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "136:6:26", + "nodeType": "VariableDeclaration", + "scope": 29875, + "src": "128:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29867, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "128:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29870, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "152:6:26", + "nodeType": "VariableDeclaration", + "scope": 29875, + "src": "144:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29869, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "144:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "127:32:26" + }, + "returnParameters": { + "id": 29874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29873, + "mutability": "mutable", + "name": "pair", + "nameLocation": "186:4:26", + "nodeType": "VariableDeclaration", + "scope": 29875, + "src": "178:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "178:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "177:14:26" + }, + "scope": 29876, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IUniswapV2Factory", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29876 + ], + "name": "IUniswapV2Factory", + "nameLocation": "83:17:26", + "scope": 29889, + "usedErrors": [] + }, + { + "id": 29882, + "nodeType": "ContractDefinition", + "src": "199:77:26", + "nodes": [ + { + "id": 29881, + "nodeType": "FunctionDefinition", + "src": "226:47:26", + "nodes": [], + "functionSelector": "755965b8", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "updateTaxesAccrued", + "nameLocation": "235:18:26", + "parameters": { + "id": 29879, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29878, + "mutability": "mutable", + "name": "amt", + "nameLocation": "259:3:26", + "nodeType": "VariableDeclaration", + "scope": 29881, + "src": "254:8:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29877, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "254:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "253:10:26" + }, + "returnParameters": { + "id": 29880, + "nodeType": "ParameterList", + "parameters": [], + "src": "272:0:26" + }, + "scope": 29882, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "ITreasury", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29882 + ], + "name": "ITreasury", + "nameLocation": "209:9:26", + "scope": 29889, + "usedErrors": [] + }, + { + "id": 29888, + "nodeType": "ContractDefinition", + "src": "280:98:26", + "nodes": [ + { + "id": 29887, + "nodeType": "FunctionDefinition", + "src": "306:69:26", + "nodes": [], + "functionSelector": "08ac7624", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAllVestedTokens", + "nameLocation": "315:18:26", + "parameters": { + "id": 29883, + "nodeType": "ParameterList", + "parameters": [], + "src": "333:2:26" + }, + "returnParameters": { + "id": 29886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29885, + "mutability": "mutable", + "name": "amount", + "nameLocation": "367:6:26", + "nodeType": "VariableDeclaration", + "scope": 29887, + "src": "359:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "359:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "358:16:26" + }, + "scope": 29888, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IVesting", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29888 + ], + "name": "IVesting", + "nameLocation": "290:8:26", + "scope": 29889, + "usedErrors": [] + } + ], + "license": "GPL-3.0-or-later" + }, + "id": 26 +} \ No newline at end of file diff --git a/out/InterfacesAggregated.sol/IUniswapV2Factory.json b/out/InterfacesAggregated.sol/IUniswapV2Factory.json new file mode 100644 index 0000000..d4b31dc --- /dev/null +++ b/out/InterfacesAggregated.sol/IUniswapV2Factory.json @@ -0,0 +1,433 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPair", + "outputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "createPair(address,address)": "c9c65396" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/InterfacesAggregated.sol\":\"IUniswapV2Factory\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/interfaces/InterfacesAggregated.sol\":{\"keccak256\":\"0xd5e582438e596ce5ce33c207884e973a7b8717212aa9fd21909b8b2d9c467095\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://86a732fe5eb860bed3fc631feb767e2b3145f510c082e64dd062e9b2fca66128\",\"dweb:/ipfs/QmcrieewKPRseM8yyGH529sYqb5A4RGDoZsg5F9tDnnnmr\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "createPair", + "outputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/interfaces/InterfacesAggregated.sol": "IUniswapV2Factory" + }, + "libraries": {} + }, + "sources": { + "src/interfaces/InterfacesAggregated.sol": { + "keccak256": "0xd5e582438e596ce5ce33c207884e973a7b8717212aa9fd21909b8b2d9c467095", + "urls": [ + "bzz-raw://86a732fe5eb860bed3fc631feb767e2b3145f510c082e64dd062e9b2fca66128", + "dweb:/ipfs/QmcrieewKPRseM8yyGH529sYqb5A4RGDoZsg5F9tDnnnmr" + ], + "license": "GPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/interfaces/InterfacesAggregated.sol", + "id": 29889, + "exportedSymbols": { + "ITreasury": [ + 29882 + ], + "IUniswapV2Factory": [ + 29876 + ], + "IVesting": [ + 29888 + ] + }, + "nodeType": "SourceUnit", + "src": "46:332:26", + "nodes": [ + { + "id": 29866, + "nodeType": "PragmaDirective", + "src": "46:23:26", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ] + }, + { + "id": 29876, + "nodeType": "ContractDefinition", + "src": "73:122:26", + "nodes": [ + { + "id": 29875, + "nodeType": "FunctionDefinition", + "src": "108:84:26", + "nodes": [], + "functionSelector": "c9c65396", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nameLocation": "117:10:26", + "parameters": { + "id": 29871, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29868, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "136:6:26", + "nodeType": "VariableDeclaration", + "scope": 29875, + "src": "128:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29867, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "128:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29870, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "152:6:26", + "nodeType": "VariableDeclaration", + "scope": 29875, + "src": "144:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29869, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "144:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "127:32:26" + }, + "returnParameters": { + "id": 29874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29873, + "mutability": "mutable", + "name": "pair", + "nameLocation": "186:4:26", + "nodeType": "VariableDeclaration", + "scope": 29875, + "src": "178:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "178:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "177:14:26" + }, + "scope": 29876, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IUniswapV2Factory", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29876 + ], + "name": "IUniswapV2Factory", + "nameLocation": "83:17:26", + "scope": 29889, + "usedErrors": [] + }, + { + "id": 29882, + "nodeType": "ContractDefinition", + "src": "199:77:26", + "nodes": [ + { + "id": 29881, + "nodeType": "FunctionDefinition", + "src": "226:47:26", + "nodes": [], + "functionSelector": "755965b8", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "updateTaxesAccrued", + "nameLocation": "235:18:26", + "parameters": { + "id": 29879, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29878, + "mutability": "mutable", + "name": "amt", + "nameLocation": "259:3:26", + "nodeType": "VariableDeclaration", + "scope": 29881, + "src": "254:8:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29877, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "254:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "253:10:26" + }, + "returnParameters": { + "id": 29880, + "nodeType": "ParameterList", + "parameters": [], + "src": "272:0:26" + }, + "scope": 29882, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "ITreasury", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29882 + ], + "name": "ITreasury", + "nameLocation": "209:9:26", + "scope": 29889, + "usedErrors": [] + }, + { + "id": 29888, + "nodeType": "ContractDefinition", + "src": "280:98:26", + "nodes": [ + { + "id": 29887, + "nodeType": "FunctionDefinition", + "src": "306:69:26", + "nodes": [], + "functionSelector": "08ac7624", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAllVestedTokens", + "nameLocation": "315:18:26", + "parameters": { + "id": 29883, + "nodeType": "ParameterList", + "parameters": [], + "src": "333:2:26" + }, + "returnParameters": { + "id": 29886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29885, + "mutability": "mutable", + "name": "amount", + "nameLocation": "367:6:26", + "nodeType": "VariableDeclaration", + "scope": 29887, + "src": "359:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "359:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "358:16:26" + }, + "scope": 29888, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IVesting", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29888 + ], + "name": "IVesting", + "nameLocation": "290:8:26", + "scope": 29889, + "usedErrors": [] + } + ], + "license": "GPL-3.0-or-later" + }, + "id": 26 +} \ No newline at end of file diff --git a/out/InterfacesAggregated.sol/IVesting.json b/out/InterfacesAggregated.sol/IVesting.json new file mode 100644 index 0000000..51b496d --- /dev/null +++ b/out/InterfacesAggregated.sol/IVesting.json @@ -0,0 +1,411 @@ +{ + "abi": [ + { + "inputs": [], + "name": "getAllVestedTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "getAllVestedTokens()": "08ac7624" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getAllVestedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/InterfacesAggregated.sol\":\"IVesting\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/interfaces/InterfacesAggregated.sol\":{\"keccak256\":\"0xd5e582438e596ce5ce33c207884e973a7b8717212aa9fd21909b8b2d9c467095\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://86a732fe5eb860bed3fc631feb767e2b3145f510c082e64dd062e9b2fca66128\",\"dweb:/ipfs/QmcrieewKPRseM8yyGH529sYqb5A4RGDoZsg5F9tDnnnmr\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getAllVestedTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/interfaces/InterfacesAggregated.sol": "IVesting" + }, + "libraries": {} + }, + "sources": { + "src/interfaces/InterfacesAggregated.sol": { + "keccak256": "0xd5e582438e596ce5ce33c207884e973a7b8717212aa9fd21909b8b2d9c467095", + "urls": [ + "bzz-raw://86a732fe5eb860bed3fc631feb767e2b3145f510c082e64dd062e9b2fca66128", + "dweb:/ipfs/QmcrieewKPRseM8yyGH529sYqb5A4RGDoZsg5F9tDnnnmr" + ], + "license": "GPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/interfaces/InterfacesAggregated.sol", + "id": 29889, + "exportedSymbols": { + "ITreasury": [ + 29882 + ], + "IUniswapV2Factory": [ + 29876 + ], + "IVesting": [ + 29888 + ] + }, + "nodeType": "SourceUnit", + "src": "46:332:26", + "nodes": [ + { + "id": 29866, + "nodeType": "PragmaDirective", + "src": "46:23:26", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ] + }, + { + "id": 29876, + "nodeType": "ContractDefinition", + "src": "73:122:26", + "nodes": [ + { + "id": 29875, + "nodeType": "FunctionDefinition", + "src": "108:84:26", + "nodes": [], + "functionSelector": "c9c65396", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nameLocation": "117:10:26", + "parameters": { + "id": 29871, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29868, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "136:6:26", + "nodeType": "VariableDeclaration", + "scope": 29875, + "src": "128:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29867, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "128:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29870, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "152:6:26", + "nodeType": "VariableDeclaration", + "scope": 29875, + "src": "144:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29869, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "144:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "127:32:26" + }, + "returnParameters": { + "id": 29874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29873, + "mutability": "mutable", + "name": "pair", + "nameLocation": "186:4:26", + "nodeType": "VariableDeclaration", + "scope": 29875, + "src": "178:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "178:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "177:14:26" + }, + "scope": 29876, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IUniswapV2Factory", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29876 + ], + "name": "IUniswapV2Factory", + "nameLocation": "83:17:26", + "scope": 29889, + "usedErrors": [] + }, + { + "id": 29882, + "nodeType": "ContractDefinition", + "src": "199:77:26", + "nodes": [ + { + "id": 29881, + "nodeType": "FunctionDefinition", + "src": "226:47:26", + "nodes": [], + "functionSelector": "755965b8", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "updateTaxesAccrued", + "nameLocation": "235:18:26", + "parameters": { + "id": 29879, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29878, + "mutability": "mutable", + "name": "amt", + "nameLocation": "259:3:26", + "nodeType": "VariableDeclaration", + "scope": 29881, + "src": "254:8:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29877, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "254:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "253:10:26" + }, + "returnParameters": { + "id": 29880, + "nodeType": "ParameterList", + "parameters": [], + "src": "272:0:26" + }, + "scope": 29882, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "ITreasury", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29882 + ], + "name": "ITreasury", + "nameLocation": "209:9:26", + "scope": 29889, + "usedErrors": [] + }, + { + "id": 29888, + "nodeType": "ContractDefinition", + "src": "280:98:26", + "nodes": [ + { + "id": 29887, + "nodeType": "FunctionDefinition", + "src": "306:69:26", + "nodes": [], + "functionSelector": "08ac7624", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAllVestedTokens", + "nameLocation": "315:18:26", + "parameters": { + "id": 29883, + "nodeType": "ParameterList", + "parameters": [], + "src": "333:2:26" + }, + "returnParameters": { + "id": 29886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29885, + "mutability": "mutable", + "name": "amount", + "nameLocation": "367:6:26", + "nodeType": "VariableDeclaration", + "scope": 29887, + "src": "359:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "359:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "358:16:26" + }, + "scope": 29888, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "IVesting", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 29888 + ], + "name": "IVesting", + "nameLocation": "290:8:26", + "scope": 29889, + "usedErrors": [] + } + ], + "license": "GPL-3.0-or-later" + }, + "id": 26 +} \ No newline at end of file diff --git a/out/MainDeployment.t.sol/MainDeploymentTest.json b/out/MainDeployment.t.sol/MainDeploymentTest.json new file mode 100644 index 0000000..ae269e4 --- /dev/null +++ b/out/MainDeployment.t.sol/MainDeploymentTest.json @@ -0,0 +1,18577 @@ +{ + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "Debug", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "", + "type": "string" + }, + { + "indexed": false, + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "Debug", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "", + "type": "string" + }, + { + "indexed": false, + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "name": "Debug", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "", + "type": "string" + } + ], + "name": "Debug", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "", + "type": "string" + } + ], + "name": "log", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "log_address", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256[]", + "name": "val", + "type": "uint256[]" + } + ], + "name": "log_array", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "int256[]", + "name": "val", + "type": "int256[]" + } + ], + "name": "log_array", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address[]", + "name": "val", + "type": "address[]" + } + ], + "name": "log_array", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "log_bytes", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "log_bytes32", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "name": "log_int", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "indexed": false, + "internalType": "address", + "name": "val", + "type": "address" + } + ], + "name": "log_named_address", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "val", + "type": "uint256[]" + } + ], + "name": "log_named_array", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "indexed": false, + "internalType": "int256[]", + "name": "val", + "type": "int256[]" + } + ], + "name": "log_named_array", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "val", + "type": "address[]" + } + ], + "name": "log_named_array", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "val", + "type": "bytes" + } + ], + "name": "log_named_bytes", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "val", + "type": "bytes32" + } + ], + "name": "log_named_bytes32", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "indexed": false, + "internalType": "int256", + "name": "val", + "type": "int256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "log_named_decimal_int", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "val", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + } + ], + "name": "log_named_decimal_uint", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "indexed": false, + "internalType": "int256", + "name": "val", + "type": "int256" + } + ], + "name": "log_named_int", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "val", + "type": "string" + } + ], + "name": "log_named_string", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "val", + "type": "uint256" + } + ], + "name": "log_named_uint", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "", + "type": "string" + } + ], + "name": "log_string", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "log_uint", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "logs", + "type": "event" + }, + { + "inputs": [], + "name": "CL_FACTORY", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DL_FACTORY", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FL_FACTORY", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "INTEREST_CALC_TYPE", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "IS_TEST", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "LATEFEE_CALC_TYPE", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "LL_FACTORY", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PREMIUM_CALC_TYPE", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "SL_FACTORY", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "val", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "min", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "max", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "nonZero", + "type": "bool" + } + ], + "name": "constrictToRange", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "val", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "min", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "max", + "type": "uint256" + } + ], + "name": "constrictToRange", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "createActors", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "failed", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "symbol", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amt", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "setUp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "setUpTokens", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "test_mainDeploymentTest_claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "test_mainDeploymentTest_claim_edge_cases", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "test_mainDeploymentTest_claim_fuzzing1", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "test_mainDeploymentTest_claim_fuzzing2", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "test_mainDeploymentTest_claim_restrictions", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "test_mainDeploymentTest_init_state", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "val0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "val1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expectedDiff", + "type": "uint256" + } + ], + "name": "withinDiff", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "val0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "val1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "accuracy", + "type": "uint256" + } + ], + "name": "withinPrecision", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x60806040526000805460ff1916600117905534801561001d57600080fd5b5060008054757109709ecfa91a80626ff3989d68f67f5b1dd12d000062010000600160b01b031990911617905561a7c5806200005a6000396000f3fe60806040523480156200001157600080fd5b5060043610620001755760003560e01c80637ed9db5911620000d3578063ba414fa61162000086578063ba414fa6146200029e578063c060c5f314620002b9578063c5ba73ed14620002d0578063e70dd6cf14620002d9578063eea9621014620002e2578063fa7626d414620002ec57600080fd5b80637ed9db59146200024a57806386ef399b14620002615780638c38922f14620002785780639f71f14a1462000281578063b8dae58b146200028a578063b967b5a7146200029457600080fd5b8063344b1478116200012c578063344b147814620001e85780633493f4ca14620001ff57806338505fb014620002085780636686e15414620002115780636c676a60146200021b5780637a8fe3c0146200024157600080fd5b806304740900146200017a5780630a831a1514620001865780630a9254e41462000190578063174a5be4146200019a5780631afcfe2214620001ba57806330f7c5c314620001d1575b600080fd5b62000184620002fa565b005b6200018462000a09565b6200018462000fab565b620001a3600181565b60405160ff90911681526020015b60405180910390f35b62000184620001cb36600462003e93565b62001137565b62000184620001e236600462003ead565b620019a9565b62000184620001f936600462003ead565b62001b1f565b620001a3600b81565b620001a3600281565b6200018462001c28565b620002326200022c36600462003ee9565b620022dd565b604051908152602001620001b1565b620001a3600c81565b620001846200025b36600462003f43565b6200233b565b620001846200027236600462003e93565b6200250a565b620001a3600a81565b620001a3600481565b6200018462002b89565b6200018462003246565b620002a86200332c565b6040519015158152602001620001b1565b62000232620002ca36600462003ead565b62003461565b620001a3600381565b620001a3600081565b620001846200347c565b600054620002a89060ff1681565b60195460185460405163a9059cbb60e01b81526001600160a01b0391821660048201526a0422ca8b0a00a4250000006024820181905292919091169063a9059cbb906044016020604051808303816000875af11580156200035f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000385919062003f7e565b50600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af1158015620003d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fb919062003f7e565b6200040a576200040a62003f9e565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362000453939082169291169069d3c21bcecceda10000009060040162003fb4565b6020604051808303816000875af115801562000473573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000499919062003f7e565b620004a857620004a862003f9e565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620004f1939082169291169069d3c21bcecceda10000009060040162003fb4565b6020604051808303816000875af115801562000511573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000537919062003f7e565b62000546576200054662003f9e565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc926200058a92911690849069d3c21bcecceda10000009060040162003fb4565b6020604051808303816000875af1158015620005aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005d0919062003f7e565b620005df57620005df62003f9e565b620005ed62127500620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200063c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000662919062003f7e565b62000671576200067162003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620006fc9291909116906370a0823190602401602060405180830381865afa158015620006c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006eb919062003fd8565b691969368974c05b00000062003735565b6200070a62cb0700620036d5565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562000759573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200077f919062003f7e565b6200078e576200078e62003f9e565b6019546001546040516370a0823160e01b81526001600160a01b039182166004820152620008199291909116906370a0823190602401602060405180830381865afa158015620007e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000808919062003fd8565b697f0e10af47c1c700000062003735565b6200082762b89200620036d5565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562000876573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200089c919062003f7e565b620008ab57620008ab62003f9e565b6019546001546040516370a0823160e01b81526001600160a01b039182166004820152620009379291909116906370a08231906024015b602060405180830381865afa15801562000900573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000926919062003fd8565b69d3c21bcecceda100000062003735565b620009466301dfe200620036d5565b600254601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562000995573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009bb919062003f7e565b620009ca57620009ca62003f9e565b6019546002546040516370a0823160e01b81526001600160a01b03918216600482015262000a069291909116906370a0823190602401620008e2565b50565b601954604080516318160ddd60e01b8152905162000a8f926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa15801562000a56573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a7c919062003fd8565b6b033b2e3c9fd0803ce800000062003735565b6019546040516370a0823160e01b815230600482015262000adb916001600160a01b0316906370a0823190602401602060405180830381865afa15801562000a56573d6000803e3d6000fd5b6019546018546040516370a0823160e01b81526001600160a01b03918216600482015262000b5e9291909116906370a08231906024015b602060405180830381865afa15801562000b30573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b56919062003fd8565b600062003735565b60195460408051638da5cb5b60e01b8152905162000bd8926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801562000bab573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bd1919062003ff2565b306200380e565b601954604080516311318fbb60e21b8152905162000c5d926001600160a01b0316916344c63eec9160048083019260209291908290030181865afa15801562000c25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c4b919062003ff2565b6018546001600160a01b03166200380e565b601954604080516311318fbb60e21b8152905162000d4c926001600160a01b031691639b19251a9183916344c63eec9160048083019260209291908290030181865afa15801562000cb2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cd8919062003ff2565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024015b602060405180830381865afa15801562000d1e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d44919062003f7e565b600162003908565b601954604051634d8c928d60e11b81526001600160a01b039091166004820181905262000d8291639b19251a9060240162000d00565b60195460408051638da5cb5b60e01b8152905162000dd7926001600160a01b031691639b19251a918391638da5cb5b9160048083019260209291908290030181865afa15801562000cb2573d6000803e3d6000fd5b601854604080516385d4cad360e01b8152905162000e5c926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562000e24573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e4a919062003ff2565b6019546001600160a01b03166200380e565b6018546040805163f02c6d8f60e01b8152905162000ea9926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa15801562000b30573d6000803e3d6000fd5b60185460408051633fc3ddeb60e11b8152905162000f24926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa15801562000ef6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f1c919062003f7e565b600062003908565b60185460408051638da5cb5b60e01b8152905162000fa9926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801562000f71573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f97919062003ff2565b6002546001600160a01b03166200380e565b565b62000fb562003246565b62000fbf6200347c565b633b9aca006012633b9aca008060405162000fda9062003e69565b93845260c060208501819052600a908501526950726f7665205a65726f60b01b60e0850152610100604085018190526005908501526450524f564560d81b61012085015260ff9092166060840152608083015260a082015261014001604051809103906000f08015801562001053573d6000803e3d6000fd5b50601980546001600160a01b0319166001600160a01b0392831690811790915560025460405191921690620010889062003e77565b6001600160a01b03928316815291166020820152604001604051809103906000f080158015620010bc573d6000803e3d6000fd5b50601880546001600160a01b0319166001600160a01b03928316908117909155601954604051631bdbfcef60e21b8152600481019290925290911690636f6ff3bc90602401600060405180830381600087803b1580156200111c57600080fd5b505af115801562001131573d6000803e3d6000fd5b50505050565b620011598169152d02c7e14af68000006a52b7d2dcc80cd2e400000062003a7f565b60195460185460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303816000875af1158015620011b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011d7919062003f7e565b506003546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b1580156200123257600080fd5b505af115801562001247573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc94506200128b939283169290911690869060040162003fb4565b6020604051808303816000875af1158015620012ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012d1919062003f7e565b620012e057620012e062003f9e565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af11580156200132f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001355919062003f7e565b62001364576200136462003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620013a09291909116906370a082319060240162000b12565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620013ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001415919062003f7e565b62001424576200142462003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620014c99291909116906370a08231906024015b602060405180830381865afa15801562001479573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200149f919062003fd8565b6064620014ae84600c62004028565b620014ba91906200405e565b670de0b6b3a764000062001b1f565b620014d76224ea00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001526573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200154c919062003f7e565b6200155b576200155b62003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620015e49291909116906370a0823190602401602060405180830381865afa158015620015af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015d5919062003fd8565b6064620014ae84601462004028565b620015f26224ea00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001641573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001667919062003f7e565b62001676576200167662003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620016ff9291909116906370a0823190602401602060405180830381865afa158015620016ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016f0919062003fd8565b6064620014ae84601c62004028565b6200170d626ebe00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200175c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001782919062003f7e565b62001791576200179162003f9e565b6019546003546040516370a0823160e01b81526001600160a01b0391821660048201526200181a9291909116906370a0823190602401602060405180830381865afa158015620017e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200180b919062003fd8565b6064620014ae84603462004028565b6200182862dd7c00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001877573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200189d919062003f7e565b620018ac57620018ac62003f9e565b6019546003546040516370a0823160e01b81526001600160a01b0391821660048201526200192e9291909116906370a08231906024015b602060405180830381865afa15801562001901573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001927919062003fd8565b8262003735565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200198d57600080fd5b505af1158015620019a2573d6000803e3d6000fd5b5050505050565b6000828411620019c557620019bf848462004075565b620019d1565b620019d1838562004075565b905080600003620019e25750505050565b60008415620019f25784620019f4565b835b9050600062001a0584600a62004188565b62001a1d906b033b2e3c9fd0803ce80000006200405e565b8262001a366b033b2e3c9fd0803ce80000008662004028565b62001a4291906200405e565b1090508062001b1757604080518181526034818301527f4572726f723a20617070726f782061203d3d2062206e6f742073617469736669606082015273032b2161030b1b1bab930b1bc903234b3b4ba39960651b60808201526020810186905290516000805160206200a7708339815191529181900360a00190a16000805160206200a7708339815191528660405162001add919062004196565b60405180910390a16000805160206200a7708339815191528560405162001b059190620041cf565b60405180910390a162001b1762003ac0565b505050505050565b600082841162001b3b5762001b35848462004075565b62001b47565b62001b47838562004075565b90508181111580620019a257604080518181526038818301527f4572726f723a20617070726f782061203d3d2062206e6f74207361746973666960608201527f65642c20616363757261637920646966666572656e636520000000000000000060808201526020810185905290516000805160206200a7708339815191529181900360a00190a16000805160206200a7708339815191528560405162001bee919062004196565b60405180910390a16000805160206200a7708339815191528460405162001c169190620041cf565b60405180910390a1620019a262003ac0565b60195460185460405163a9059cbb60e01b81526001600160a01b0391821660048201526a0422ca8b0a00a4250000006024820181905292919091169063a9059cbb906044016020604051808303816000875af115801562001c8d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001cb3919062003f7e565b506003546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801562001d0e57600080fd5b505af115801562001d23573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f720000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063f28dceb39150608401600060405180830381600087803b15801562001dc857600080fd5b505af115801562001ddd573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562001e3257600080fd5b505af115801562001e47573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc945062001e9593928316929091169069d3c21bcecceda10000009060040162003fb4565b6020604051808303816000875af115801562001eb5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001edb919062003f7e565b62001eea5762001eea62003f9e565b60405163f28dceb360e01b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b6064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb390608401600060405180830381600087803b15801562001f7957600080fd5b505af115801562001f8e573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562001fe357600080fd5b505af115801562001ff8573d6000803e3d6000fd5b5050600254601854604051636de416d560e11b81526001600160a01b0391821660048201529116925063dbc82daa91506024016020604051808303816000875af11580156200204b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002071919062003f7e565b62002080576200208062003f9e565b601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620020d157600080fd5b505af1158015620020e6573d6000803e3d6000fd5b50505050620020f96301dfe200620036d5565b601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200214a57600080fd5b505af11580156200215f573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b6064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063f28dceb39150608401600060405180830381600087803b158015620021fb57600080fd5b505af115801562002210573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200226557600080fd5b505af11580156200227a573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200198d57600080fd5b600084158015620022ec575081155b15620022fb5750600062002333565b8383036200230b57508162002333565b8362002318818562004075565b620023249087620041fa565b62002330919062004211565b90505b949350505050565b6000838152600460208190526040808320805460019091015491516370a0823160e01b81526001600160a01b0387811694820194909452921692909183906370a0823190602401602060405180830381865afa158015620023a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620023c6919062003fd8565b600054604080516001600160a01b0389811660208301529181018690529293506201000090910416906370ca10bb9085906060016040516020818303038152906040528051906020012087856200241e919062004211565b60405160e085901b6001600160e01b03191681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b1580156200246d57600080fd5b505af115801562002482573d6000803e3d6000fd5b50506040516370a0823160e01b81526001600160a01b03888116600483015262001b179350861691506370a0823190602401602060405180830381865afa158015620024d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024f8919062003fd8565b62002504868462004211565b62003735565b6200252c8169152d02c7e14af68000006a52b7d2dcc80cd2e400000062003a7f565b6019546018549192506001600160a01b039081169163a9059cbb91166200255584600362004028565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015620025a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620025c7919062003f7e565b50600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562002617573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200263d919062003f7e565b6200264c576200264c62003f9e565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200268b9390821692911690869060040162003fb4565b6020604051808303816000875af1158015620026ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026d1919062003f7e565b620026e057620026e062003f9e565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200271f9390821692911690869060040162003fb4565b6020604051808303816000875af11580156200273f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002765919062003f7e565b62002774576200277462003f9e565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc92620027ae929116908490869060040162003fb4565b6020604051808303816000875af1158015620027ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027f4919062003f7e565b62002803576200280362003f9e565b6200281162127500620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562002860573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002886919062003f7e565b62002895576200289562003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620028d19291909116906370a08231906024016200145b565b620028df62cb0700620036d5565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200292e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002954919062003f7e565b62002963576200296362003f9e565b6019546001546040516370a0823160e01b81526001600160a01b039182166004820152620029ec9291909116906370a0823190602401602060405180830381865afa158015620029b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029dd919062003fd8565b6064620014ae84603c62004028565b620029fa62b89200620036d5565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562002a49573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a6f919062003f7e565b62002a7e5762002a7e62003f9e565b6019546001546040516370a0823160e01b81526001600160a01b03918216600482015262002aba9291909116906370a0823190602401620018e3565b62002ac96301dfe200620036d5565b600254601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562002b18573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b3e919062003f7e565b62002b4d5762002b4d62003f9e565b6019546002546040516370a0823160e01b81526001600160a01b03918216600482015262000a069291909116906370a0823190602401620018e3565b60195460185460405163a9059cbb60e01b81526001600160a01b03918216600482015269d3c21bcecceda10000006024820181905292919091169063a9059cbb906044016020604051808303816000875af115801562002bed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c13919062003f7e565b506003546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801562002c6e57600080fd5b505af115801562002c83573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc945062002cc7939283169290911690869060040162003fb4565b6020604051808303816000875af115801562002ce7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d0d919062003f7e565b62002d1c5762002d1c62003f9e565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562002d6b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d91919062003f7e565b62002da05762002da062003f9e565b6019546003546040516370a0823160e01b81526001600160a01b03918216600482015262002ddc9291909116906370a082319060240162000b12565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562002e2b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e51919062003f7e565b62002e605762002e6062003f9e565b6019546003546040516370a0823160e01b81526001600160a01b03918216600482015262002ef59291909116906370a0823190602401602060405180830381865afa15801562002eb4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002eda919062003fd8565b606462002ee984600c62004028565b6200250491906200405e565b62002f036224ea00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562002f52573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f78919062003f7e565b62002f875762002f8762003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620030109291909116906370a0823190602401602060405180830381865afa15801562002fdb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003001919062003fd8565b606462002ee984601462004028565b6200301e6224ea00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200306d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003093919062003f7e565b620030a257620030a262003f9e565b6019546003546040516370a0823160e01b81526001600160a01b0391821660048201526200312b9291909116906370a0823190602401602060405180830381865afa158015620030f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200311c919062003fd8565b606462002ee984601c62004028565b62003139626ebe00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562003188573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620031ae919062003f7e565b620031bd57620031bd62003f9e565b6019546003546040516370a0823160e01b81526001600160a01b0391821660048201526200181a9291909116906370a0823190602401602060405180830381865afa15801562003211573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003237919062003fd8565b606462002ee984603462004028565b604051620032549062003e85565b604051809103906000f08015801562003271573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b0392909216919091179055604051620032a09062003e85565b604051809103906000f080158015620032bd573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b0392909216919091179055604051620032ec9062003e85565b604051809103906000f08015801562003309573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008054610100900460ff16156200334d5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156200345c5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b82840152825180830384018152606083019093526000929091620033de917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016200424d565b60408051601f1981840301815290829052620033fa9162004280565b6000604051808303816000865af19150503d806000811462003439576040519150601f19603f3d011682016040523d82523d6000602084013e6200343e565b606091505b509150508080602001905181019062003458919062003f7e565b9150505b919050565b6000620034728484846000620022dd565b90505b9392505050565b60046020527ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603c80546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481790915560097ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603d557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13e80548216736b175474e89094c44da98b954eedeac495271d0f17905560027f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13f557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf1408054821673aed0c38402a5d19df6e4c03f4e2dced6e29c1ee91790557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d268054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560037f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d27557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d2880548216735f4ec3df9cbd43714fe2740f5e3616155c5b8419179055635742544360e01b60009081527f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691d980548316732260fac5e5542a773aa44fbcfedf7c193bc2c5991790557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691da557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691db805490911673f4030086522a5beea4988f8ca5b36dbc97bee88c179055565b737109709ecfa91a80626ff3989d68f67f5b1dd12d63e5d6bf02620036fb834262004211565b6040518263ffffffff1660e01b81526004016200371a91815260200190565b600060405180830381600087803b1580156200198d57600080fd5b8082146200380a577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620037a89060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a16000805160206200a77083398151915281604051620037d0919062004196565b60405180910390a16000805160206200a77083398151915282604051620037f89190620041cf565b60405180910390a16200380a62003ac0565b5050565b806001600160a01b0316826001600160a01b0316146200380a577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620038969060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464604082015264726573735d60d81b606082015260800190565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f81604051620038cf91906200429e565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f82604051620037f89190620042e3565b801515821515146200380a577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516200397f9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6040820152616c5d60f01b606082015260800190565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf358381620039d2576040518060400160405280600581526020016466616c736560d81b815250620039f0565b604051806040016040528060048152602001637472756560e01b8152505b604051620039ff91906200433c565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35838262003a52576040518060400160405280600581526020016466616c736560d81b81525062003a70565b604051806040016040528060048152602001637472756560e01b8152505b604051620037f891906200437b565b600062003a8e84848462003bd3565b9050620034756040518060400160405280600c81526020016b109bdd5b990814995cdd5b1d60a21b8152508262003dc9565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1562003bc25760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262003b5d92916020016200424d565b60408051601f198184030181529082905262003b799162004280565b6000604051808303816000865af19150503d806000811462003bb8576040519150601f19603f3d011682016040523d82523d6000602084013e62003bbd565b606091505b505050505b6000805461ff001916610100179055565b60008183111562003c505760405162461bcd60e51b815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e0000606482015260840160405180910390fd5b82841015801562003c615750818411155b1562003c6f57508262003475565b600062003c7d848462004075565b62003c8a90600162004211565b90506003851115801562003c9d57508481115b1562003cb85762003caf858562004211565b91505062003475565b62003cc7600360001962004075565b851015801562003ce3575062003ce08560001962004075565b81115b1562003d035762003cf78560001962004075565b62003caf908462004075565b8285111562003d6557600062003d1a848762004075565b9050600062003d2a8383620041fa565b90508060000362003d415784935050505062003475565b600162003d4f828862004211565b62003d5b919062004075565b9350505062003dc1565b8385101562003dc157600062003d7c868662004075565b9050600062003d8c8383620041fa565b90508060000362003da35785935050505062003475565b62003daf818662004075565b62003dbc90600162004211565b935050505b509392505050565b60006a636f6e736f6c652e6c6f676001600160a01b0316838360405160240162003df5929190620043a6565b60408051601f198184030181529181526020820180516001600160e01b0316632d839cb360e21b1790525162003e2c919062004280565b600060405180830381855afa9150503d806000811462001b17576040519150601f19603f3d011682016040523d82523d6000602084013e62001b17565b61446c80620043cb83390190565b611962806200883783390190565b6105d7806200a19983390190565b60006020828403121562003ea657600080fd5b5035919050565b60008060006060848603121562003ec357600080fd5b505081359360208301359350604090920135919050565b801515811462000a0657600080fd5b6000806000806080858703121562003f0057600080fd5b843593506020850135925060408501359150606085013562003f228162003eda565b939692955090935050565b6001600160a01b038116811462000a0657600080fd5b60008060006060848603121562003f5957600080fd5b83359250602084013562003f6d8162003f2d565b929592945050506040919091013590565b60006020828403121562003f9157600080fd5b8151620034758162003eda565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006020828403121562003feb57600080fd5b5051919050565b6000602082840312156200400557600080fd5b8151620034758162003f2d565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762004042576200404262004012565b92915050565b634e487b7160e01b600052601260045260246000fd5b60008262004070576200407062004048565b500490565b8181038181111562004042576200404262004012565b600181815b80851115620040cc578160001904821115620040b057620040b062004012565b80851615620040be57918102915b93841c939080029062004090565b509250929050565b600082620040e55750600162004042565b81620040f45750600062004042565b81600181146200410d5760028114620041185762004138565b600191505062004042565b60ff8411156200412c576200412c62004012565b50506001821b62004042565b5060208310610133831016604e8410600b84101617156200415d575081810a62004042565b6200416983836200408b565b806000190482111562004180576200418062004012565b029392505050565b6000620034758383620040d4565b604081526000620041c160408301600a8152690808115e1c1958dd195960b21b602082015260400190565b905082602083015292915050565b604081526000620041c160408301600a815269080808081058dd1d585b60b21b602082015260400190565b6000826200420c576200420c62004048565b500690565b8082018082111562004042576200404262004012565b60005b83811015620042445781810151838201526020016200422a565b50506000910152565b6001600160e01b03198316815281516000906200427281600485016020870162004227565b919091016004019392505050565b600082516200429481846020870162004227565b9190910192915050565b604081526000620042c960408301600a8152690808115e1c1958dd195960b21b602082015260400190565b6001600160a01b0393909316602092909201919091525090565b604081526000620042c960408301600a815269080808081058dd1d585b60b21b602082015260400190565b600081518084526200432881602086016020860162004227565b601f01601f19169290920160200192915050565b6040815260006200436760408301600a8152690808115e1c1958dd195960b21b602082015260400190565b82810360208401526200233381856200430e565b6040815260006200436760408301600a815269080808081058dd1d585b60b21b602082015260400190565b604081526000620043bb60408301856200430e565b9050826020830152939250505056fe60a06040526011805460ff191690553480156200001b57600080fd5b506040516200446c3803806200446c8339810160408190526200003e91620005f4565b848460036200004e838262000724565b5060046200005d828262000724565b50506005805460ff19166012179055506000620000773390565b60058054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b805460ff19169055620000f2836005805460ff191660ff92909216919091179055565b60055460ff166200010590600a62000903565b62000111908762000914565b600881905550737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200016a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019091906200092e565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021891906200092e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000266573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028c91906200092e565b6001600160a01b031660808190526000908152601460209081526040808320805460ff19908116600117909155601590925290912080549091166002179055620002d860055460ff1690565b620002e590600a62000903565b620002f1908362000914565b600e5560055460ff166200030790600a62000903565b62000313908262000914565b600f5560055460ff166200032990600a62000903565b6200033690600162000914565b60105530600090815260136020819052604082208054600160ff1991821681179092558380527f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c805490911682179055916200039f60055461010090046001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905562000408620003e360055461010090046001600160a01b031690565b60055460ff16620003f690600a62000903565b62000402908962000914565b62000414565b50505050505062000976565b6001600160a01b0382166200046f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b6200048b816002546200051860201b620024f01790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620004be918390620024f062000518821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b600062000526828462000960565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200055757600080fd5b81516001600160401b03808211156200057457620005746200052f565b604051601f8301601f19908116603f011681019082821181831017156200059f576200059f6200052f565b81604052838152602092508683858801011115620005bc57600080fd5b600091505b83821015620005e05785820183015181830184015290820190620005c1565b600093810190920192909252949350505050565b60008060008060008060c087890312156200060e57600080fd5b865160208801519096506001600160401b03808211156200062e57600080fd5b6200063c8a838b0162000545565b965060408901519150808211156200065357600080fd5b506200066289828a0162000545565b945050606087015160ff811681146200067a57600080fd5b809350506080870151915060a087015190509295509295509295565b600181811c90821680620006ab57607f821691505b602082108103620006cc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200051357600081815260208120601f850160051c81016020861015620006fb5750805b601f850160051c820191505b818110156200071c5782815560010162000707565b505050505050565b81516001600160401b038111156200074057620007406200052f565b620007588162000751845462000696565b84620006d2565b602080601f831160018114620007905760008415620007775750858301515b600019600386901b1c1916600185901b1785556200071c565b600085815260208120601f198616915b82811015620007c157888601518255948401946001909101908401620007a0565b5085821015620007e05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008475781600019048211156200082b576200082b620007f0565b808516156200083957918102915b93841c93908002906200080b565b509250929050565b600082620008605750600162000529565b816200086f5750600062000529565b81600181146200088857600281146200089357620008b3565b600191505062000529565b60ff841115620008a757620008a7620007f0565b50506001821b62000529565b5060208310610133831016604e8410600b8410161715620008d8575081810a62000529565b620008e4838362000806565b8060001904821115620008fb57620008fb620007f0565b029392505050565b60006200052660ff8416836200084f565b8082028115828204841417620005295762000529620007f0565b6000602082840312156200094157600080fd5b81516001600160a01b03811681146200095957600080fd5b9392505050565b80820180821115620005295762000529620007f0565b608051613ad362000999600039600081816107e20152611c890152613ad36000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c80638f3f5254116101d3578063c7c4ff4611610104578063f2fde38b116100a2578063f78080601161007c578063f780806014610817578063f9079b731461082a578063f9f92be41461084a578063fb8f3cc81461086d57600080fd5b8063f2fde38b146107ca578063f40acc3d146107dd578063f5423c891461080457600080fd5b8063dd62ed3e116100de578063dd62ed3e14610757578063f0f4426014610790578063f2b6b501146107a3578063f2c098b7146107b757600080fd5b8063c7c4ff461461071e578063cc6df13814610731578063dd4670641461074457600080fd5b8063a3504e7c11610171578063a97ed4d21161014b578063a97ed4d2146106a2578063b5b44106146106b5578063b9181611146106e8578063c4bb8cbe1461070b57600080fd5b8063a3504e7c14610659578063a457c2d71461067c578063a9059cbb1461068f57600080fd5b806397a84f85116101ad57806397a84f85146105e05780639af98541146106005780639b19251a146106235780639dc29fac1461064657600080fd5b80638f3f5254146105bc5780638f3fa860146105cf57806395d89b41146105d857600080fd5b806344c63eec116102ad5780636f6ff3bc1161024b578063715018a611610225578063715018a61461058d5780638456cb59146105955780638c0b5e221461059d5780638da5cb5b146105a657600080fd5b80636f6ff3bc1461053e5780637097f7931461055157806370a082311461056457600080fd5b806361d027b31161028757806361d027b3146104e55780636256d181146104fd578063676d3563146105105780636ef8834a1461052b57600080fd5b806344c63eec1461049c5780635376b092146104c75780635c975abb146104da57600080fd5b806324887e801161031a57806339509351116102f457806339509351146104665780633b6c0334146104795780633f4ba83a1461048157806340c10f191461048957600080fd5b806324887e8014610425578063313ce56714610438578063317d94531461045157600080fd5b8063095ea7b311610356578063095ea7b3146103c7578063166cc492146103ea57806318160ddd1461040a57806323b872dd1461041257600080fd5b8063060d206e1461037d57806306fdde0314610392578063090f215c146103b0575b600080fd5b61039061038b366004613414565b61088d565b005b61039a6108f1565b6040516103a79190613452565b60405180910390f35b6103b960105481565b6040519081526020016103a7565b6103da6103d53660046134a0565b610983565b60405190151581526020016103a7565b6103b96103f83660046134e2565b60186020526000908152604090205481565b6002546103b9565b6103da6104203660046134fd565b61099a565b61039061043336600461353e565b610a03565b60055460ff165b60405160ff90911681526020016103a7565b306000908152602081905260409020546103b9565b6103da6104743660046134a0565b610b00565b610390610b36565b610390610b90565b6103906104973660046134a0565b610c77565b600c546104af906001600160a01b031681565b6040516001600160a01b0390911681526020016103a7565b6103906104d5366004613557565b610ce5565b600b5460ff166103da565b600b546104af9061010090046001600160a01b031681565b61039061050b36600461353e565b610e25565b6104af737a250d5630b4cf539739df2c5dacb4c659f2488d81565b610390610539366004613414565b610f1b565b61039061054c366004613573565b6110bc565b61039061055f366004613590565b6112e7565b6103b9610572366004613573565b6001600160a01b031660009081526020819052604090205490565b6103906113bd565b61039061143d565b6103b9600f5481565b60055461010090046001600160a01b03166104af565b6103906105ca3660046134a0565b61154d565b6103b9600e5481565b61039a611615565b6103b96105ee3660046134e2565b60166020526000908152604090205481565b61043f61060e366004613573565b60156020526000908152604090205460ff1681565b6103da610631366004613573565b60136020526000908152604090205460ff1681565b6103906106543660046134a0565b611624565b61043f610667366004613573565b60146020526000908152604090205460ff1681565b6103da61068a3660046134a0565b61168e565b6103da61069d3660046134a0565b6116dd565b6103906106b036600461353e565b6116ea565b6106c86106c3366004613573565b61173b565b6040805194855260208501939093529183015260608201526080016103a7565b6103da6106f6366004613573565b60176020526000908152604090205460ff1681565b61039061071936600461353e565b6117fe565b600d546104af906001600160a01b031681565b61039061073f366004613414565b6119db565b61039061075236600461353e565b611dbe565b6103b96107653660046135c5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61039061079e366004613573565b611e6b565b600d546103da90600160a01b900460ff1681565b6103906107c5366004613573565b61201d565b6103906107d8366004613573565b6121ba565b6104af7f000000000000000000000000000000000000000000000000000000000000000081565b6103906108123660046134a0565b612219565b610390610825366004613590565b612418565b6103b9610838366004613573565b60196020526000908152604090205481565b6103da610858366004613573565b60126020526000908152604090205460ff1681565b6103b961087b366004613573565b601a6020526000908152604090205481565b6005546001600160a01b036101009091041633146108c65760405162461bcd60e51b81526004016108bd906135f3565b60405180910390fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b60606003805461090090613628565b80601f016020809104026020016040519081016040528092919081815260200182805461092c90613628565b80156109795780601f1061094e57610100808354040283529160200191610979565b820191906000526020600020905b81548152906001019060200180831161095c57829003601f168201915b5050505050905090565b6000610990338484612503565b5060015b92915050565b60006109a7848484612628565b6109f984336109f485604051806060016040528060288152602001613a51602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190612c33565b612503565b5060019392505050565b6005546001600160a01b03610100909104163314610a335760405162461bcd60e51b81526004016108bd906135f3565b60008111610aa95760405162461bcd60e51b815260206004820152603f60248201527f546178546f6b656e2e736f6c3a3a7570646174654d617857616c6c657453697a60448201527f652829205f6d617857616c6c657453697a65206d75737420626520677420300060648201526084016108bd565b60055460ff16610aba90600a61375c565b610ac4908261376b565b600e8190556040519081527f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109909185906109f490866124f0565b6005546001600160a01b03610100909104163314610b665760405162461bcd60e51b81526004016108bd906135f3565b60115460ff16610b8e57610b8e610b893060009081526020819052604090205490565b612c5f565b565b6005546001600160a01b03610100909104163314610bc05760405162461bcd60e51b81526004016108bd906135f3565b600b5460ff16610c385760405162461bcd60e51b815260206004820152603d60248201527f546178546f6b656e2e736f6c3a3a7768656e50617573656428292c20436f6e7460448201527f72616374206973206e6f742063757272656e746c79207061757365642e00000060648201526084016108bd565b600b805460ff191690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a1565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b03161480610cbb57503360009081526017602052604090205460ff1615156001145b610cd75760405162461bcd60e51b81526004016108bd90613782565b610ce18282612d36565b5050565b6005546001600160a01b03610100909104163314610d155760405162461bcd60e51b81526004016108bd906135f3565b6107d0811115610d8d5760405162461bcd60e51b815260206004820152603860248201527f546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e74735460448201527f617828292c205f627074203e20323030302028323025292e000000000000000060648201526084016108bd565b600d54600160a01b900460ff1615610e0f576040805162461bcd60e51b81526020600482015260248101919091527f546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e74735460448201527f617828292c205461786174696f6e20686173206265656e2072656d6f7665642e60648201526084016108bd565b60ff909116600090815260166020526040902055565b6005546001600160a01b03610100909104163314610e555760405162461bcd60e51b81526004016108bd906135f3565b60008111610ecb5760405162461bcd60e51b815260206004820152603b60248201527f546178546f6b656e2e736f6c3a3a7570646174654d61785478416d6f756e742860448201527f29205f6d61785478416d6f756e74206d7573742062652067742030000000000060648201526084016108bd565b60055460ff16610edc90600a61375c565b610ee6908261376b565b600f8190556040519081527fff3dd5e80294197918c284bbfc3dadd97d0b40ce92106110946329088f80068a90602001610af5565b6005546001600160a01b03610100909104163314610f4b5760405162461bcd60e51b81526004016108bd906135f3565b6001600160a01b038216610fba5760405162461bcd60e51b815260206004820152603060248201527f546178546f6b656e2e736f6c3a3a757064617465417574686f72697a65644c6960448201526f073742829205f6f776e6572203d3d20360841b60648201526084016108bd565b6001600160a01b03821660009081526017602052604090205460ff1615158115151461105d5760405162461bcd60e51b815260206004820152604660248201527f546178546f6b656e2e736f6c3a3a757064617465417574686f72697a65644c6960448201527f73742829205f6163636f756e7420697320616c72656164792073657420746f206064820152655f737461746560d01b608482015260a4016108bd565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f351731b7072c47dd7498a1db554905beb804daf2833acfabd6e954d1fac65cfd910160405180910390a25050565b6005546001600160a01b036101009091041633146110ec5760405162461bcd60e51b81526004016108bd906135f3565b600c546001600160a01b03908116908216036111705760405162461bcd60e51b815260206004820152603a60248201527f546178546f6b656e2e736f6c3a3a73657456657374696e67282920616c72656160448201527f64792073657420746f207472656173757279206164647265737300000000000060648201526084016108bd565b6001600160a01b0381166111ec5760405162461bcd60e51b815260206004820152603860248201527f546178546f6b656e2e736f6c3a3a73657456657374696e67282920747265617360448201527f7572792063616e6e6f742062652061646472657373283029000000000000000060648201526084016108bd565b600c80546001600160a01b0319166001600160a01b03831690811790915561121590600161088d565b600c546040805163022b1d8960e21b815290516000926001600160a01b0316916308ac76249160048083019260209291908290030181865afa15801561125f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128391906137df565b600c5490915061129c906001600160a01b031682612d36565b600c54604080516001600160a01b03928316815291841660208301527fa596bfd2fd3f8533a574f9df13f553b4d5751c65c233b974b15fa91891857f3e910160405180910390a15050565b6005546001600160a01b036101009091041633146113175760405162461bcd60e51b81526004016108bd906135f3565b60038160ff16106113905760405162461bcd60e51b815260206004820152603e60248201527f546178546f6b656e3a3a75706461746553656e6465725461785479706528292c60448201527f205f74617854797065206d757374206265206c657373207468616e20332e000060648201526084016108bd565b6001600160a01b03919091166000908152601460205260409020805460ff191660ff909216919091179055565b6005546001600160a01b036101009091041633146113ed5760405162461bcd60e51b81526004016108bd906135f3565b60055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6005546001600160a01b0361010090910416331461146d5760405162461bcd60e51b81526004016108bd906135f3565b3361147a600b5460ff1690565b158061149e57506001600160a01b03811660009081526013602052604090205460ff165b6115105760405162461bcd60e51b815260206004820152603f60248201527f546178546f6b656e2e736f6c3a3a7768656e4e6f74506175736564556e69282960448201527f2c20436f6e74726163742069732063757272656e746c79207061757365642e0060648201526084016108bd565b600b805460ff191660011790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610af5565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b0316148061159157503360009081526017602052604090205460ff1615156001145b6115ad5760405162461bcd60e51b81526004016108bd90613782565b6115b78282612d36565b6001600160a01b038216600090815260196020526040812080548392906115df9084906137f8565b90915550506001600160a01b0382166000908152601a60205260408120805483929061160c9084906137f8565b90915550505050565b60606004805461090090613628565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b0316148061166857503360009081526017602052604090205460ff1615156001145b6116845760405162461bcd60e51b81526004016108bd90613782565b610ce18282612e15565b600061099033846109f485604051806060016040528060258152602001613a79602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190612c33565b6000610990338484612628565b6005546001600160a01b0361010090910416331461171a5760405162461bcd60e51b81526004016108bd906135f3565b60055460ff1661172b90600a61375c565b611735908261376b565b60105550565b6040516370a0823160e01b81526001600160a01b0382166004820152600090819081908190819030906370a0823190602401602060405180830381865afa15801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae91906137df565b6001600160a01b0387166000908152601960205260408120549192506117d4828461380b565b6001600160a01b03989098166000908152601a602052604090205492989197965091945092505050565b6005546001600160a01b0361010090910416331461182e5760405162461bcd60e51b81526004016108bd906135f3565b80602a146118965760405162461bcd60e51b815260206004820152602f60248201527f546178546f6b656e3a3a7065726d616e656e746c7952656d6f7665546178657360448201526e141496102fb5b2bc90109e901a191760891b60648201526084016108bd565b600d54600160a01b900460ff16156119275760405162461bcd60e51b815260206004820152604860248201527f546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e74735460448201527f617828292c205461786174696f6e2068617320616c7265616479206265656e206064820152673932b6b7bb32b21760c11b608482015260a4016108bd565b601660205260007f0263c2b778d062355049effc2dece97bc6547ff8a88a3258daa512061c2153dd8190557f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf49819055600281527fcaff291fe014adc6b72a172705750b4cabe8f8667664d2924a166caab2885648819055600d805460ff60a01b1916600160a01b1790556040517fc75f57ef1bbf80f914dce2d672e5f9474567b8de900e1580de72874d08ff86b99190a150565b6005546001600160a01b03610100909104163314611a0b5760405162461bcd60e51b81526004016108bd906135f3565b8015611d93576001600160a01b03821660009081526013602052604090205460ff1615611a9d5760405162461bcd60e51b815260206004820152604660248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c69737420612077686974656c6973746564206064820152651dd85b1b195d60d21b608482015260a4016108bd565b600b546001600160a01b03610100909104811690831603611b145760405162461bcd60e51b815260206004820152603a60248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c69737420747265617375727900000000000060648201526084016108bd565b600d546001600160a01b0390811690831603611b865760405162461bcd60e51b815260206004820152603b60248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c697374206465706f7369746f72000000000060648201526084016108bd565b600c546001600160a01b0390811690831603611bf85760405162461bcd60e51b815260206004820152603960248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c6973742076657374696e670000000000000060648201526084016108bd565b737a250d5630b4cf539739df2c5dacb4c659f2488c196001600160a01b03831601611c875760405162461bcd60e51b8152602060048201526044602482018190526000805160206139e9833981519152908201527f2063616e6e6f7420626c61636b6c6973742074686520556e697377617020524f6064820152632aaa22a960e11b608482015260a4016108bd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611d275760405162461bcd60e51b815260206004820152604260248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c6973742074686520556e697377617020504160648201526124a960f11b608482015260a4016108bd565b306001600160a01b03831603611d935760405162461bcd60e51b815260206004820152603f60248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c697374207468697320636f6e74726163740060648201526084016108bd565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b03610100909104163314611dee5760405162461bcd60e51b81526004016108bd906135f3565b60058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055611e2881426137f8565b60075560055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6005546001600160a01b03610100909104163314611e9b5760405162461bcd60e51b81526004016108bd906135f3565b600b546001600160a01b03610100909104811690821603611f245760405162461bcd60e51b815260206004820152603b60248201527f546178546f6b656e2e736f6c3a3a7365745472656173757279282920616c726560448201527f6164792073657420746f2074726561737572792061646472657373000000000060648201526084016108bd565b6001600160a01b038116611fa05760405162461bcd60e51b815260206004820152603960248201527f546178546f6b656e2e736f6c3a3a73657454726561737572792829207472656160448201527f737572792063616e6e6f7420626520616464726573732830290000000000000060648201526084016108bd565b600b8054610100600160a81b0319166101006001600160a01b0384811682029290921792839055611fd4920416600161088d565b600b54604080516001600160a01b036101009093048316815291831660208301527f4ab5be82436d353e61ca18726e984e561f5c1cc7c6d38b29d2553c790434705a9101610af5565b6005546001600160a01b0361010090910416331461204d5760405162461bcd60e51b81526004016108bd906135f3565b600d546001600160a01b03908116908216036120d15760405162461bcd60e51b815260206004820152603c60248201527f546178546f6b656e2e736f6c3a3a7365746465706f7369746f72282920616c7260448201527f656164792073657420746f20747265617375727920616464726573730000000060648201526084016108bd565b6001600160a01b03811661214d5760405162461bcd60e51b815260206004820152603a60248201527f546178546f6b656e2e736f6c3a3a7365746465706f7369746f7228292074726560448201527f61737572792063616e6e6f74206265206164647265737328302900000000000060648201526084016108bd565b600d80546001600160a01b0319166001600160a01b03831690811790915561217690600061088d565b600d54604080516001600160a01b03928316815291831660208301527f830becdc16911bd35301d7e36682bb0bf344b313f5406e9eb6d8632a349763449101610af5565b6005546001600160a01b036101009091041633146121ea5760405162461bcd60e51b81526004016108bd906135f3565b6001600160a01b0381166000908152601360205260409020805460ff1916600117905561221681612f19565b50565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b0316148061225d57503360009081526017602052604090205460ff1615156001145b6122795760405162461bcd60e51b81526004016108bd90613782565b6001600160a01b0382166122f55760405162461bcd60e51b815260206004820152603a60248201527f546178546f6b656e2e736f6c3a3a696e6475737472794275726e28292c20436160448201527f6e6e6f74206275726e20746f207a65726f20616464726573732e00000000000060648201526084016108bd565b80612315836001600160a01b031660009081526020819052604090205490565b10156123975760405162461bcd60e51b815260206004820152604560248201527f546178546f6b656e2e736f6c3a3a696e6475737472794275726e28292c20496e60448201527f73756666696369656e742062616c616e6365206f66202450524f564520746f20606482015264313ab9371760d91b608482015260a4016108bd565b6001600160a01b03821660009081526019602052604090205481116123f3576123c08282612e15565b6001600160a01b038216600090815260196020526040812080548392906123e890849061380b565b90915550610ce19050565b6123fd8282612e15565b506001600160a01b0316600090815260196020526040812055565b6005546001600160a01b036101009091041633146124485760405162461bcd60e51b81526004016108bd906135f3565b60038160ff16106124c3576040805162461bcd60e51b81526020600482015260248101919091527f546178546f6b656e3a3a7570646174655265636569766572546178547970652860448201527f292c205f74617854797065206d757374206265206c657373207468616e20332e60648201526084016108bd565b6001600160a01b03919091166000908152601560205260409020805460ff191660ff909216919091179055565b60006124fc82846137f8565b9392505050565b6001600160a01b0383166125655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108bd565b6001600160a01b0382166125c65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108bd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000612636600b5460ff1690565b158061265a57506001600160a01b03841660009081526013602052604090205460ff165b8061267d57506001600160a01b03831660009081526013602052604090205460ff165b8061269757503360009081526013602052604090205460ff165b6127095760405162461bcd60e51b815260206004820152603760248201527f546178546f6b656e2e736f6c3a3a5f7472616e73666572282920636f6e74726160448201527f63742069732063757272656e746c79207061757365642e00000000000000000060648201526084016108bd565b81612729856001600160a01b031660009081526020819052604090205490565b101561278a5760405162461bcd60e51b815260206004820152602a60248201527f546178546f6b656e3a3a5f7472616e73666572282920696e73756666696369656044820152696e742062616c616e636560b01b60648201526084016108bd565b600082116127f65760405162461bcd60e51b815260206004820152603360248201527f546178546f6b656e3a3a5f7472616e73666572282920616d6f756e74206d75736044820152720742062652067726561746572207468616e203606c1b60648201526084016108bd565b6001600160a01b03831660009081526013602052604090205460ff1615801561283857506001600160a01b03841660009081526013602052604090205460ff16155b801561285457503360009081526013602052604090205460ff16155b801561286957506001600160a01b0384163014155b15612c225781600f5410156128d95760405162461bcd60e51b815260206004820152603060248201527f546178546f6b656e3a3a5f7472616e73666572282920616d6f756e742065786360448201526f1959591cc81b585e151e105b5bdd5b9d60821b60648201526084016108bd565b6001600160a01b03841660009081526012602052604090205460ff16156129565760405162461bcd60e51b815260206004820152602b60248201527f546178546f6b656e3a3a5f7472616e7366657228292073656e6465722069732060448201526a189b1858dadb1a5cdd195960aa1b60648201526084016108bd565b6001600160a01b03831660009081526012602052604090205460ff16156129d55760405162461bcd60e51b815260206004820152602d60248201527f546178546f6b656e3a3a5f7472616e736665722829207265636569766572206960448201526c1cc8189b1858dadb1a5cdd1959609a1b60648201526084016108bd565b6001600160a01b03841660009081526014602052604090205460ff1615612a1457506001600160a01b03831660009081526014602052604090205460ff165b6001600160a01b03831660009081526015602052604090205460ff1615612a5357506001600160a01b03821660009081526015602052604090205460ff165b60ff811660009081526016602052604081205461271090612a74908561376b565b612a7e919061381e565b90506000612a8c828561380b565b905083612a9982846137f8565b14612af85760405162461bcd60e51b815260206004820152602960248201527f546178546f6b656e3a3a5f7472616e73666572282920637269746963616c206d60448201526830ba341032b93937b960b91b60648201526084016108bd565b8260ff16600214158015612b1a5750600d546001600160a01b03868116911614155b15612bb757600e5481612b42876001600160a01b031660009081526020819052604090205490565b612b4c91906137f8565b1115612bb75760405162461bcd60e51b815260206004820152603460248201527f546178546f6b656e3a3a5f7472616e73666572282920616d6f756e74206578636044820152731959591cc81b585e15d85b1b195d105b5bdd5b9d60621b60648201526084016108bd565b8260ff166002148015612bcd575060115460ff16155b15612c055730600090815260208190526040902054600f54811115612bf15750600f545b6010548110612c0357612c0381612c5f565b505b612c10868683613015565b612c1b863084613015565b5050612c2d565b612c2d848484613015565b50505050565b60008184841115612c575760405162461bcd60e51b81526004016108bd9190613452565b505050900390565b6011805460ff191660011790556000612c7782613198565b90508015612d2857600b54604051630eab2cb760e31b8152600481018390526101009091046001600160a01b03169063755965b890602401600060405180830381600087803b158015612cc957600080fd5b505af1158015612cdd573d6000803e3d6000fd5b5050600b546040518481526101009091046001600160a01b031692507f831f3151ac4fe05e9e25607e80c8710ed1dbc868f9edf4c2852b87d14eec373b915060200160405180910390a25b50506011805460ff19169055565b6001600160a01b038216612d8c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108bd565b600254612d9990826124f0565b6002556001600160a01b038216600090815260208190526040902054612dbf90826124f0565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6001600160a01b038216612e755760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108bd565b612eb281604051806060016040528060228152602001613a09602291396001600160a01b0385166000908152602081905260409020549190612c33565b6001600160a01b038316600090815260208190526040902055600254612ed890826133f3565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001612e09565b6005546001600160a01b03610100909104163314612f495760405162461bcd60e51b81526004016108bd906135f3565b6001600160a01b038116612fae5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108bd565b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166130795760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108bd565b6001600160a01b0382166130db5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108bd565b61311881604051806060016040528060268152602001613a2b602691396001600160a01b0386166000908152602081905260409020549190612c33565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461314790826124f0565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161261b565b6040805160028082526060820183526000928392919060208301908036833701905050905030816000815181106131d1576131d1613856565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613243573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613267919061386c565b8160018151811061327a5761327a613856565b60200260200101906001600160a01b031690816001600160a01b0316815250506132b930737a250d5630b4cf539739df2c5dacb4c659f2488d85612503565b60405163d06ca61f60e01b8152600090737a250d5630b4cf539739df2c5dacb4c659f2488d9063d06ca61f906132f590879086906004016138cd565b600060405180830381865afa158015613312573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261333a91908101906138ee565b600b54909150737a250d5630b4cf539739df2c5dacb4c659f2488d90635c11d795908690600090869061010090046001600160a01b031661337d4261012c6137f8565b6040518663ffffffff1660e01b815260040161339d9594939291906139ac565b600060405180830381600087803b1580156133b757600080fd5b505af11580156133cb573d6000803e3d6000fd5b50505050806001815181106133e2576133e2613856565b602002602001015192505050919050565b60006124fc828461380b565b6001600160a01b038116811461221657600080fd5b6000806040838503121561342757600080fd5b8235613432816133ff565b91506020830135801515811461344757600080fd5b809150509250929050565b600060208083528351808285015260005b8181101561347f57858101830151858201604001528201613463565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156134b357600080fd5b82356134be816133ff565b946020939093013593505050565b803560ff811681146134dd57600080fd5b919050565b6000602082840312156134f457600080fd5b6124fc826134cc565b60008060006060848603121561351257600080fd5b833561351d816133ff565b9250602084013561352d816133ff565b929592945050506040919091013590565b60006020828403121561355057600080fd5b5035919050565b6000806040838503121561356a57600080fd5b6134be836134cc565b60006020828403121561358557600080fd5b81356124fc816133ff565b600080604083850312156135a357600080fd5b82356135ae816133ff565b91506135bc602084016134cc565b90509250929050565b600080604083850312156135d857600080fd5b82356135e3816133ff565b91506020830135613447816133ff565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061363c57607f821691505b60208210810361365c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156136b357816000190482111561369957613699613662565b808516156136a657918102915b93841c939080029061367d565b509250929050565b6000826136ca57506001610994565b816136d757506000610994565b81600181146136ed57600281146136f757613713565b6001915050610994565b60ff84111561370857613708613662565b50506001821b610994565b5060208310610133831016604e8410600b8410161715613736575081810a610994565b6137408383613678565b806000190482111561375457613754613662565b029392505050565b60006124fc60ff8416836136bb565b808202811582820484141761099457610994613662565b6020808252603d908201527f546178546f6b656e2e736f6c3a3a6f6e6c79417574686f72697a656428292c2060408201527f6d73672e73656e646572206973206e6f7420617574686f72697a65642e000000606082015260800190565b6000602082840312156137f157600080fd5b5051919050565b8082018082111561099457610994613662565b8181038181111561099457610994613662565b60008261383b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561387e57600080fd5b81516124fc816133ff565b600081518084526020808501945080840160005b838110156138c25781516001600160a01b03168752958201959082019060010161389d565b509495945050505050565b8281526040602082015260006138e66040830184613889565b949350505050565b6000602080838503121561390157600080fd5b825167ffffffffffffffff8082111561391957600080fd5b818501915085601f83011261392d57600080fd5b81518181111561393f5761393f613840565b8060051b604051601f19603f8301168101818110858211171561396457613964613840565b60405291825284820192508381018501918883111561398257600080fd5b938501935b828510156139a057845184529385019392850192613987565b98975050505050505050565b85815284602082015260a0604082015260006139cb60a0830186613889565b6001600160a01b039490941660608301525060800152939250505056fe546178546f6b656e2e736f6c3a3a6d6f64696679426c61636b6c69737428292c45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f6afa79d2dd6dc16daa6196b4a596cb84785ca65de715a6382c40987a3939e4c64736f6c6343000811003360a06040523480156200001157600080fd5b5060405162001962380380620019628339810160408190526200003491620001b2565b600080546001600160a01b0319163390811782556040519091829160008051602062001942833981519152908290a3506001600160a01b0382166080526200007c8162000084565b5050620001ea565b6000546001600160a01b03163314620000e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0381166200014b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620000db565b600080546040516001600160a01b03808516939216916000805160206200194283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b0381168114620001ad57600080fd5b919050565b60008060408385031215620001c657600080fd5b620001d18362000195565b9150620001e16020840162000195565b90509250929050565b60805161172e62000214600039600081816101d7015281816108320152610be5015261172e6000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806385d4cad3116100ad578063d36862e811610071578063d36862e814610251578063dd46706414610264578063ec20b45714610277578063f02c6d8f1461028a578063f2fde38b1461029357600080fd5b806385d4cad3146101d257806388a772ef146102115780638da5cb5b14610224578063a145f1b514610235578063c7e42b1b1461023e57600080fd5b806350ad827a116100f457806350ad827a1461016d5780635b904cb7146101825780636f7bc9be1461018a578063715018a6146101bd5780637f87bbd6146101c557600080fd5b806308ac7624146101265780630bca8bcd1461013d57806342714978146101505780634e71d92d14610165575b600080fd5b6005545b6040519081526020015b60405180910390f35b61012a61014b366004611501565b6102a6565b61016361015e366004611501565b61041e565b005b6101636106ac565b610175610989565b6040516101349190611523565b610163610a0b565b6101ad610198366004611501565b60076020526000908152604090205460ff1681565b6040519015158152602001610134565b610163610aea565b6004546101ad9060ff1681565b6101f97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610134565b61012a61021f366004611501565b610b5e565b6000546001600160a01b03166101f9565b61012a60055481565b61016361024c366004611501565b610bb9565b61012a61025f366004611501565b610f4b565b610163610272366004611585565b610fa6565b61016361028536600461159e565b61103d565b61012a60035481565b6101636102a1366004611501565b611302565b6001600160a01b03811660009081526007602052604081205460ff1680156102d0575060045460ff165b156104115760006102e0836113ec565b905060006102ed84610b5e565b90508060068381548110610303576103036115c8565b90600052602060002090600302016002015410610324575060009392505050565b60006224ea006003544261033891906115f4565b610342919061160d565b90506000606461035384600861162f565b61035d919061160d565b610367908361162f565b606461037485600c61162f565b61037e919061160d565b6103889190611646565b9050828111806103995750600b8210155b156103d557600684815481106103b1576103b16115c8565b906000526020600020906003020160020154836103ce91906115f4565b9050610408565b600684815481106103e8576103e86115c8565b9060005260206000209060030201600201548161040591906115f4565b90505b95945050505050565b506000919050565b919050565b6000546001600160a01b031633146104515760405162461bcd60e51b815260040161044890611659565b60405180910390fd5b6001600160a01b0381166104cd5760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f7420626520616464726573732830290000000000006064820152608401610448565b60006104d8826113ec565b90506000600682815481106104ef576104ef6115c8565b600091825260209182902060408051606081018252600390930290910180546001600160a01b03168352600180820154948401949094526002015490820152600680549193509161053f916115f4565b8154811061054f5761054f6115c8565b906000526020600020906003020160068381548110610570576105706115c8565b60009182526020909120825460039092020180546001600160a01b0319166001600160a01b039092169190911781556001808301548183015560029283015492909101919091556006805483926105c6916115f4565b815481106105d6576105d66115c8565b600091825260209182902083516003929092020180546001600160a01b0319166001600160a01b03909216919091178155908201516001820155604090910151600290910155600680548061062d5761062d61168e565b6000828152602080822060036000199094019384020180546001600160a01b031916815560018101839055600201829055919092556001600160a01b03851680835260079091526040808320805460ff191690555190917fba0013628ccb89af5bb18edf764d3a7b35c07b894848b8e6fd3434719de39c7d91a2505050565b3360009081526007602052604090205460ff1615156001146107365760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f720000000000006064820152608401610448565b60045460ff1661079c5760405162461bcd60e51b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b6064820152608401610448565b60006107a7336102a6565b9050600081116108165760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b6064820152608401610448565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116a4565b6109065760405162461bcd60e51b815260206004820152602a60248201527f56657374696e672e736f6c3a3a636c61696d2829207472616e7366657220756e6044820152691cdd58d8d95cdcd99d5b60b21b6064820152608401610448565b6000610911336113ec565b90508160068281548110610927576109276115c8565b906000526020600020906003020160020160008282546109479190611646565b909155505060408051338152602081018490527fc9ff33ee3842ec05cab3a4e2b17aa19694b6c461ea543be5752366f912a6539d910160405180910390a15050565b60606006805480602002602001604051908101604052809291908181526020016000905b82821015610a02576000848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016109ad565b50505050905090565b6000546001600160a01b03163314610a355760405162461bcd60e51b815260040161044890611659565b60045460ff1615610aae5760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a656e61626c6556657374696e6728292076657360448201527f74696e6720697320616c726561647920656e61626c65640000000000000000006064820152608401610448565b6004805460ff19166001179055426003556040517ff78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa390600090a1565b6000546001600160a01b03163314610b145760405162461bcd60e51b815260040161044890611659565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03811660009081526007602052604081205460ff1615610411576000610b8a836113ec565b905060068181548110610b9f57610b9f6115c8565b906000526020600020906003020160010154915050919050565b6000546001600160a01b03163314610be35760405162461bcd60e51b815260040161044890611659565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610c8a5760405162461bcd60e51b815260206004820152603960248201527f56657374696e672e736f6c3a3a7769746864726177457263323028292063616e60448201527f6e6f74207769746864726177202450524f564520746f6b656e000000000000006064820152608401610448565b6001600160a01b038116610d065760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920746f6b60448201527f656e2063616e6e6f7420626520616464726573732830290000000000000000006064820152608401610448565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7191906116c6565b905060008111610de95760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920696e7360448201527f756666696369656e7420746f6b656e2062616c616e63650000000000000000006064820152608401610448565b6000826001600160a01b031663a9059cbb610e0c6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d91906116a4565b905080610ee75760405162461bcd60e51b815260206004820152603260248201527f56657374696e672e736f6c3a3a776974686472617745726332302829207472616044820152711b9cd9995c881d5b9cdd58d8d95cdcd99d5b60721b6064820152608401610448565b7f3ff9434501bb42cce78344c3420ec1273f8b404aba16aaae994c0d413b91bb4f8383610f1c6000546001600160a01b031690565b604080516001600160a01b039485168152602081019390935292168183015290519081900360600190a1505050565b6001600160a01b03811660009081526007602052604081205460ff1615610411576000610f77836113ec565b905060068181548110610f8c57610f8c6115c8565b906000526020600020906003020160020154915050919050565b6000546001600160a01b03163314610fd05760405162461bcd60e51b815260040161044890611659565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610fff8142611646565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000546001600160a01b031633146110675760405162461bcd60e51b815260040161044890611659565b6001600160a01b03821660009081526007602052604090205460ff16156110ed5760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b6064820152608401610448565b6001600160a01b0382166111695760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f74206265206164647265737328302900000000000000006064820152608401610448565b600081116111d75760405162461bcd60e51b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b6064820152608401610448565b6001600160a01b0382811660008181526007602090815260408083208054600160ff1990911681179091558151606081018352948552918401868152908401838152600680549384018155845293517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600390930292830180546001600160a01b031916919096161790945592517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4084015590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4190920191909155600580548392906112c5908490611646565b90915550506040516001600160a01b038316907f62e6a5118be03f9bfedb79b0ed7ed75ee4a9e15fc4c69d2c4976acde26fa2d5f90600090a25050565b6000546001600160a01b0316331461132c5760405162461bcd60e51b815260040161044890611659565b6001600160a01b0381166113915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610448565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526007602052604081205460ff16151560011461147f5760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f7200000000000000006064820152608401610448565b6000805b6006548110156114e357836001600160a01b0316600682815481106114aa576114aa6115c8565b60009182526020909120600390910201546001600160a01b0316036114d1578091506114e3565b806114db816116df565b915050611483565b5092915050565b80356001600160a01b038116811461041957600080fd5b60006020828403121561151357600080fd5b61151c826114ea565b9392505050565b602080825282518282018190526000919060409081850190868401855b8281101561157857815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101611540565b5091979650505050505050565b60006020828403121561159757600080fd5b5035919050565b600080604083850312156115b157600080fd5b6115ba836114ea565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115611607576116076115de565b92915050565b60008261162a57634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417611607576116076115de565b80820180821115611607576116076115de565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156116b657600080fd5b8151801515811461151c57600080fd5b6000602082840312156116d857600080fd5b5051919050565b6000600182016116f1576116f16115de565b506001019056fea2646970667358221220d2355449aa619c52df97b3ae1052a171b8fa5fa41104c173bef64d6cc1fd6c1b64736f6c634300081100338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0608060405234801561001057600080fd5b506105b7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea2646970667358221220843b2a7925f054aa4267ccb704b85ca5db3172d6fe2b6977a4bbeadddcd28f0164736f6c63430008110033b2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a2646970667358221220583485df38d2f8d815109cb31c6d64fc274c9066b9f2f549bb1c045690fe199d64736f6c63430008110033", + "sourceMap": "306:10985:25:-:0;;;1572:26:0;;;-1:-1:-1;;1572:26:0;1594:4;1572:26;;;306:10985:25;;;;;;;;;-1:-1:-1;3122:37:26;3086:77;;;-1:-1:-1;;;;;;3086:77:26;;;;;;306:10985:25;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x60806040523480156200001157600080fd5b5060043610620001755760003560e01c80637ed9db5911620000d3578063ba414fa61162000086578063ba414fa6146200029e578063c060c5f314620002b9578063c5ba73ed14620002d0578063e70dd6cf14620002d9578063eea9621014620002e2578063fa7626d414620002ec57600080fd5b80637ed9db59146200024a57806386ef399b14620002615780638c38922f14620002785780639f71f14a1462000281578063b8dae58b146200028a578063b967b5a7146200029457600080fd5b8063344b1478116200012c578063344b147814620001e85780633493f4ca14620001ff57806338505fb014620002085780636686e15414620002115780636c676a60146200021b5780637a8fe3c0146200024157600080fd5b806304740900146200017a5780630a831a1514620001865780630a9254e41462000190578063174a5be4146200019a5780631afcfe2214620001ba57806330f7c5c314620001d1575b600080fd5b62000184620002fa565b005b6200018462000a09565b6200018462000fab565b620001a3600181565b60405160ff90911681526020015b60405180910390f35b62000184620001cb36600462003e93565b62001137565b62000184620001e236600462003ead565b620019a9565b62000184620001f936600462003ead565b62001b1f565b620001a3600b81565b620001a3600281565b6200018462001c28565b620002326200022c36600462003ee9565b620022dd565b604051908152602001620001b1565b620001a3600c81565b620001846200025b36600462003f43565b6200233b565b620001846200027236600462003e93565b6200250a565b620001a3600a81565b620001a3600481565b6200018462002b89565b6200018462003246565b620002a86200332c565b6040519015158152602001620001b1565b62000232620002ca36600462003ead565b62003461565b620001a3600381565b620001a3600081565b620001846200347c565b600054620002a89060ff1681565b60195460185460405163a9059cbb60e01b81526001600160a01b0391821660048201526a0422ca8b0a00a4250000006024820181905292919091169063a9059cbb906044016020604051808303816000875af11580156200035f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000385919062003f7e565b50600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af1158015620003d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fb919062003f7e565b6200040a576200040a62003f9e565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362000453939082169291169069d3c21bcecceda10000009060040162003fb4565b6020604051808303816000875af115801562000473573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000499919062003f7e565b620004a857620004a862003f9e565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620004f1939082169291169069d3c21bcecceda10000009060040162003fb4565b6020604051808303816000875af115801562000511573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000537919062003f7e565b62000546576200054662003f9e565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc926200058a92911690849069d3c21bcecceda10000009060040162003fb4565b6020604051808303816000875af1158015620005aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005d0919062003f7e565b620005df57620005df62003f9e565b620005ed62127500620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200063c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000662919062003f7e565b62000671576200067162003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620006fc9291909116906370a0823190602401602060405180830381865afa158015620006c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006eb919062003fd8565b691969368974c05b00000062003735565b6200070a62cb0700620036d5565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562000759573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200077f919062003f7e565b6200078e576200078e62003f9e565b6019546001546040516370a0823160e01b81526001600160a01b039182166004820152620008199291909116906370a0823190602401602060405180830381865afa158015620007e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000808919062003fd8565b697f0e10af47c1c700000062003735565b6200082762b89200620036d5565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562000876573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200089c919062003f7e565b620008ab57620008ab62003f9e565b6019546001546040516370a0823160e01b81526001600160a01b039182166004820152620009379291909116906370a08231906024015b602060405180830381865afa15801562000900573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000926919062003fd8565b69d3c21bcecceda100000062003735565b620009466301dfe200620036d5565b600254601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562000995573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009bb919062003f7e565b620009ca57620009ca62003f9e565b6019546002546040516370a0823160e01b81526001600160a01b03918216600482015262000a069291909116906370a0823190602401620008e2565b50565b601954604080516318160ddd60e01b8152905162000a8f926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa15801562000a56573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a7c919062003fd8565b6b033b2e3c9fd0803ce800000062003735565b6019546040516370a0823160e01b815230600482015262000adb916001600160a01b0316906370a0823190602401602060405180830381865afa15801562000a56573d6000803e3d6000fd5b6019546018546040516370a0823160e01b81526001600160a01b03918216600482015262000b5e9291909116906370a08231906024015b602060405180830381865afa15801562000b30573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b56919062003fd8565b600062003735565b60195460408051638da5cb5b60e01b8152905162000bd8926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801562000bab573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bd1919062003ff2565b306200380e565b601954604080516311318fbb60e21b8152905162000c5d926001600160a01b0316916344c63eec9160048083019260209291908290030181865afa15801562000c25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c4b919062003ff2565b6018546001600160a01b03166200380e565b601954604080516311318fbb60e21b8152905162000d4c926001600160a01b031691639b19251a9183916344c63eec9160048083019260209291908290030181865afa15801562000cb2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cd8919062003ff2565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024015b602060405180830381865afa15801562000d1e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d44919062003f7e565b600162003908565b601954604051634d8c928d60e11b81526001600160a01b039091166004820181905262000d8291639b19251a9060240162000d00565b60195460408051638da5cb5b60e01b8152905162000dd7926001600160a01b031691639b19251a918391638da5cb5b9160048083019260209291908290030181865afa15801562000cb2573d6000803e3d6000fd5b601854604080516385d4cad360e01b8152905162000e5c926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562000e24573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e4a919062003ff2565b6019546001600160a01b03166200380e565b6018546040805163f02c6d8f60e01b8152905162000ea9926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa15801562000b30573d6000803e3d6000fd5b60185460408051633fc3ddeb60e11b8152905162000f24926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa15801562000ef6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f1c919062003f7e565b600062003908565b60185460408051638da5cb5b60e01b8152905162000fa9926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801562000f71573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f97919062003ff2565b6002546001600160a01b03166200380e565b565b62000fb562003246565b62000fbf6200347c565b633b9aca006012633b9aca008060405162000fda9062003e69565b93845260c060208501819052600a908501526950726f7665205a65726f60b01b60e0850152610100604085018190526005908501526450524f564560d81b61012085015260ff9092166060840152608083015260a082015261014001604051809103906000f08015801562001053573d6000803e3d6000fd5b50601980546001600160a01b0319166001600160a01b0392831690811790915560025460405191921690620010889062003e77565b6001600160a01b03928316815291166020820152604001604051809103906000f080158015620010bc573d6000803e3d6000fd5b50601880546001600160a01b0319166001600160a01b03928316908117909155601954604051631bdbfcef60e21b8152600481019290925290911690636f6ff3bc90602401600060405180830381600087803b1580156200111c57600080fd5b505af115801562001131573d6000803e3d6000fd5b50505050565b620011598169152d02c7e14af68000006a52b7d2dcc80cd2e400000062003a7f565b60195460185460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303816000875af1158015620011b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011d7919062003f7e565b506003546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b1580156200123257600080fd5b505af115801562001247573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc94506200128b939283169290911690869060040162003fb4565b6020604051808303816000875af1158015620012ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012d1919062003f7e565b620012e057620012e062003f9e565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af11580156200132f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001355919062003f7e565b62001364576200136462003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620013a09291909116906370a082319060240162000b12565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620013ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001415919062003f7e565b62001424576200142462003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620014c99291909116906370a08231906024015b602060405180830381865afa15801562001479573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200149f919062003fd8565b6064620014ae84600c62004028565b620014ba91906200405e565b670de0b6b3a764000062001b1f565b620014d76224ea00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001526573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200154c919062003f7e565b6200155b576200155b62003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620015e49291909116906370a0823190602401602060405180830381865afa158015620015af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015d5919062003fd8565b6064620014ae84601462004028565b620015f26224ea00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001641573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001667919062003f7e565b62001676576200167662003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620016ff9291909116906370a0823190602401602060405180830381865afa158015620016ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016f0919062003fd8565b6064620014ae84601c62004028565b6200170d626ebe00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200175c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001782919062003f7e565b62001791576200179162003f9e565b6019546003546040516370a0823160e01b81526001600160a01b0391821660048201526200181a9291909116906370a0823190602401602060405180830381865afa158015620017e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200180b919062003fd8565b6064620014ae84603462004028565b6200182862dd7c00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001877573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200189d919062003f7e565b620018ac57620018ac62003f9e565b6019546003546040516370a0823160e01b81526001600160a01b0391821660048201526200192e9291909116906370a08231906024015b602060405180830381865afa15801562001901573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001927919062003fd8565b8262003735565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200198d57600080fd5b505af1158015620019a2573d6000803e3d6000fd5b5050505050565b6000828411620019c557620019bf848462004075565b620019d1565b620019d1838562004075565b905080600003620019e25750505050565b60008415620019f25784620019f4565b835b9050600062001a0584600a62004188565b62001a1d906b033b2e3c9fd0803ce80000006200405e565b8262001a366b033b2e3c9fd0803ce80000008662004028565b62001a4291906200405e565b1090508062001b1757604080518181526034818301527f4572726f723a20617070726f782061203d3d2062206e6f742073617469736669606082015273032b2161030b1b1bab930b1bc903234b3b4ba39960651b60808201526020810186905290516000805160206200a7708339815191529181900360a00190a16000805160206200a7708339815191528660405162001add919062004196565b60405180910390a16000805160206200a7708339815191528560405162001b059190620041cf565b60405180910390a162001b1762003ac0565b505050505050565b600082841162001b3b5762001b35848462004075565b62001b47565b62001b47838562004075565b90508181111580620019a257604080518181526038818301527f4572726f723a20617070726f782061203d3d2062206e6f74207361746973666960608201527f65642c20616363757261637920646966666572656e636520000000000000000060808201526020810185905290516000805160206200a7708339815191529181900360a00190a16000805160206200a7708339815191528560405162001bee919062004196565b60405180910390a16000805160206200a7708339815191528460405162001c169190620041cf565b60405180910390a1620019a262003ac0565b60195460185460405163a9059cbb60e01b81526001600160a01b0391821660048201526a0422ca8b0a00a4250000006024820181905292919091169063a9059cbb906044016020604051808303816000875af115801562001c8d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001cb3919062003f7e565b506003546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801562001d0e57600080fd5b505af115801562001d23573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f720000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063f28dceb39150608401600060405180830381600087803b15801562001dc857600080fd5b505af115801562001ddd573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562001e3257600080fd5b505af115801562001e47573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc945062001e9593928316929091169069d3c21bcecceda10000009060040162003fb4565b6020604051808303816000875af115801562001eb5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001edb919062003f7e565b62001eea5762001eea62003f9e565b60405163f28dceb360e01b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b6064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb390608401600060405180830381600087803b15801562001f7957600080fd5b505af115801562001f8e573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562001fe357600080fd5b505af115801562001ff8573d6000803e3d6000fd5b5050600254601854604051636de416d560e11b81526001600160a01b0391821660048201529116925063dbc82daa91506024016020604051808303816000875af11580156200204b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002071919062003f7e565b62002080576200208062003f9e565b601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620020d157600080fd5b505af1158015620020e6573d6000803e3d6000fd5b50505050620020f96301dfe200620036d5565b601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200214a57600080fd5b505af11580156200215f573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b6064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063f28dceb39150608401600060405180830381600087803b158015620021fb57600080fd5b505af115801562002210573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200226557600080fd5b505af11580156200227a573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200198d57600080fd5b600084158015620022ec575081155b15620022fb5750600062002333565b8383036200230b57508162002333565b8362002318818562004075565b620023249087620041fa565b62002330919062004211565b90505b949350505050565b6000838152600460208190526040808320805460019091015491516370a0823160e01b81526001600160a01b0387811694820194909452921692909183906370a0823190602401602060405180830381865afa158015620023a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620023c6919062003fd8565b600054604080516001600160a01b0389811660208301529181018690529293506201000090910416906370ca10bb9085906060016040516020818303038152906040528051906020012087856200241e919062004211565b60405160e085901b6001600160e01b03191681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b1580156200246d57600080fd5b505af115801562002482573d6000803e3d6000fd5b50506040516370a0823160e01b81526001600160a01b03888116600483015262001b179350861691506370a0823190602401602060405180830381865afa158015620024d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024f8919062003fd8565b62002504868462004211565b62003735565b6200252c8169152d02c7e14af68000006a52b7d2dcc80cd2e400000062003a7f565b6019546018549192506001600160a01b039081169163a9059cbb91166200255584600362004028565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015620025a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620025c7919062003f7e565b50600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562002617573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200263d919062003f7e565b6200264c576200264c62003f9e565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200268b9390821692911690869060040162003fb4565b6020604051808303816000875af1158015620026ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026d1919062003f7e565b620026e057620026e062003f9e565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200271f9390821692911690869060040162003fb4565b6020604051808303816000875af11580156200273f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002765919062003f7e565b62002774576200277462003f9e565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc92620027ae929116908490869060040162003fb4565b6020604051808303816000875af1158015620027ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027f4919062003f7e565b62002803576200280362003f9e565b6200281162127500620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562002860573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002886919062003f7e565b62002895576200289562003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620028d19291909116906370a08231906024016200145b565b620028df62cb0700620036d5565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200292e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002954919062003f7e565b62002963576200296362003f9e565b6019546001546040516370a0823160e01b81526001600160a01b039182166004820152620029ec9291909116906370a0823190602401602060405180830381865afa158015620029b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029dd919062003fd8565b6064620014ae84603c62004028565b620029fa62b89200620036d5565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562002a49573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a6f919062003f7e565b62002a7e5762002a7e62003f9e565b6019546001546040516370a0823160e01b81526001600160a01b03918216600482015262002aba9291909116906370a0823190602401620018e3565b62002ac96301dfe200620036d5565b600254601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562002b18573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b3e919062003f7e565b62002b4d5762002b4d62003f9e565b6019546002546040516370a0823160e01b81526001600160a01b03918216600482015262000a069291909116906370a0823190602401620018e3565b60195460185460405163a9059cbb60e01b81526001600160a01b03918216600482015269d3c21bcecceda10000006024820181905292919091169063a9059cbb906044016020604051808303816000875af115801562002bed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c13919062003f7e565b506003546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801562002c6e57600080fd5b505af115801562002c83573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc945062002cc7939283169290911690869060040162003fb4565b6020604051808303816000875af115801562002ce7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d0d919062003f7e565b62002d1c5762002d1c62003f9e565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562002d6b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d91919062003f7e565b62002da05762002da062003f9e565b6019546003546040516370a0823160e01b81526001600160a01b03918216600482015262002ddc9291909116906370a082319060240162000b12565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562002e2b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e51919062003f7e565b62002e605762002e6062003f9e565b6019546003546040516370a0823160e01b81526001600160a01b03918216600482015262002ef59291909116906370a0823190602401602060405180830381865afa15801562002eb4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002eda919062003fd8565b606462002ee984600c62004028565b6200250491906200405e565b62002f036224ea00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562002f52573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f78919062003f7e565b62002f875762002f8762003f9e565b6019546003546040516370a0823160e01b81526001600160a01b039182166004820152620030109291909116906370a0823190602401602060405180830381865afa15801562002fdb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003001919062003fd8565b606462002ee984601462004028565b6200301e6224ea00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200306d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003093919062003f7e565b620030a257620030a262003f9e565b6019546003546040516370a0823160e01b81526001600160a01b0391821660048201526200312b9291909116906370a0823190602401602060405180830381865afa158015620030f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200311c919062003fd8565b606462002ee984601c62004028565b62003139626ebe00620036d5565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562003188573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620031ae919062003f7e565b620031bd57620031bd62003f9e565b6019546003546040516370a0823160e01b81526001600160a01b0391821660048201526200181a9291909116906370a0823190602401602060405180830381865afa15801562003211573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003237919062003fd8565b606462002ee984603462004028565b604051620032549062003e85565b604051809103906000f08015801562003271573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b0392909216919091179055604051620032a09062003e85565b604051809103906000f080158015620032bd573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b0392909216919091179055604051620032ec9062003e85565b604051809103906000f08015801562003309573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008054610100900460ff16156200334d5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156200345c5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b82840152825180830384018152606083019093526000929091620033de917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016200424d565b60408051601f1981840301815290829052620033fa9162004280565b6000604051808303816000865af19150503d806000811462003439576040519150601f19603f3d011682016040523d82523d6000602084013e6200343e565b606091505b509150508080602001905181019062003458919062003f7e565b9150505b919050565b6000620034728484846000620022dd565b90505b9392505050565b60046020527ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603c80546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481790915560097ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603d557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13e80548216736b175474e89094c44da98b954eedeac495271d0f17905560027f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13f557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf1408054821673aed0c38402a5d19df6e4c03f4e2dced6e29c1ee91790557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d268054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560037f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d27557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d2880548216735f4ec3df9cbd43714fe2740f5e3616155c5b8419179055635742544360e01b60009081527f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691d980548316732260fac5e5542a773aa44fbcfedf7c193bc2c5991790557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691da557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691db805490911673f4030086522a5beea4988f8ca5b36dbc97bee88c179055565b737109709ecfa91a80626ff3989d68f67f5b1dd12d63e5d6bf02620036fb834262004211565b6040518263ffffffff1660e01b81526004016200371a91815260200190565b600060405180830381600087803b1580156200198d57600080fd5b8082146200380a577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620037a89060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a16000805160206200a77083398151915281604051620037d0919062004196565b60405180910390a16000805160206200a77083398151915282604051620037f89190620041cf565b60405180910390a16200380a62003ac0565b5050565b806001600160a01b0316826001600160a01b0316146200380a577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620038969060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464604082015264726573735d60d81b606082015260800190565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f81604051620038cf91906200429e565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f82604051620037f89190620042e3565b801515821515146200380a577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516200397f9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6040820152616c5d60f01b606082015260800190565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf358381620039d2576040518060400160405280600581526020016466616c736560d81b815250620039f0565b604051806040016040528060048152602001637472756560e01b8152505b604051620039ff91906200433c565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35838262003a52576040518060400160405280600581526020016466616c736560d81b81525062003a70565b604051806040016040528060048152602001637472756560e01b8152505b604051620037f891906200437b565b600062003a8e84848462003bd3565b9050620034756040518060400160405280600c81526020016b109bdd5b990814995cdd5b1d60a21b8152508262003dc9565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1562003bc25760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262003b5d92916020016200424d565b60408051601f198184030181529082905262003b799162004280565b6000604051808303816000865af19150503d806000811462003bb8576040519150601f19603f3d011682016040523d82523d6000602084013e62003bbd565b606091505b505050505b6000805461ff001916610100179055565b60008183111562003c505760405162461bcd60e51b815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e0000606482015260840160405180910390fd5b82841015801562003c615750818411155b1562003c6f57508262003475565b600062003c7d848462004075565b62003c8a90600162004211565b90506003851115801562003c9d57508481115b1562003cb85762003caf858562004211565b91505062003475565b62003cc7600360001962004075565b851015801562003ce3575062003ce08560001962004075565b81115b1562003d035762003cf78560001962004075565b62003caf908462004075565b8285111562003d6557600062003d1a848762004075565b9050600062003d2a8383620041fa565b90508060000362003d415784935050505062003475565b600162003d4f828862004211565b62003d5b919062004075565b9350505062003dc1565b8385101562003dc157600062003d7c868662004075565b9050600062003d8c8383620041fa565b90508060000362003da35785935050505062003475565b62003daf818662004075565b62003dbc90600162004211565b935050505b509392505050565b60006a636f6e736f6c652e6c6f676001600160a01b0316838360405160240162003df5929190620043a6565b60408051601f198184030181529181526020820180516001600160e01b0316632d839cb360e21b1790525162003e2c919062004280565b600060405180830381855afa9150503d806000811462001b17576040519150601f19603f3d011682016040523d82523d6000602084013e62001b17565b61446c80620043cb83390190565b611962806200883783390190565b6105d7806200a19983390190565b60006020828403121562003ea657600080fd5b5035919050565b60008060006060848603121562003ec357600080fd5b505081359360208301359350604090920135919050565b801515811462000a0657600080fd5b6000806000806080858703121562003f0057600080fd5b843593506020850135925060408501359150606085013562003f228162003eda565b939692955090935050565b6001600160a01b038116811462000a0657600080fd5b60008060006060848603121562003f5957600080fd5b83359250602084013562003f6d8162003f2d565b929592945050506040919091013590565b60006020828403121562003f9157600080fd5b8151620034758162003eda565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006020828403121562003feb57600080fd5b5051919050565b6000602082840312156200400557600080fd5b8151620034758162003f2d565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762004042576200404262004012565b92915050565b634e487b7160e01b600052601260045260246000fd5b60008262004070576200407062004048565b500490565b8181038181111562004042576200404262004012565b600181815b80851115620040cc578160001904821115620040b057620040b062004012565b80851615620040be57918102915b93841c939080029062004090565b509250929050565b600082620040e55750600162004042565b81620040f45750600062004042565b81600181146200410d5760028114620041185762004138565b600191505062004042565b60ff8411156200412c576200412c62004012565b50506001821b62004042565b5060208310610133831016604e8410600b84101617156200415d575081810a62004042565b6200416983836200408b565b806000190482111562004180576200418062004012565b029392505050565b6000620034758383620040d4565b604081526000620041c160408301600a8152690808115e1c1958dd195960b21b602082015260400190565b905082602083015292915050565b604081526000620041c160408301600a815269080808081058dd1d585b60b21b602082015260400190565b6000826200420c576200420c62004048565b500690565b8082018082111562004042576200404262004012565b60005b83811015620042445781810151838201526020016200422a565b50506000910152565b6001600160e01b03198316815281516000906200427281600485016020870162004227565b919091016004019392505050565b600082516200429481846020870162004227565b9190910192915050565b604081526000620042c960408301600a8152690808115e1c1958dd195960b21b602082015260400190565b6001600160a01b0393909316602092909201919091525090565b604081526000620042c960408301600a815269080808081058dd1d585b60b21b602082015260400190565b600081518084526200432881602086016020860162004227565b601f01601f19169290920160200192915050565b6040815260006200436760408301600a8152690808115e1c1958dd195960b21b602082015260400190565b82810360208401526200233381856200430e565b6040815260006200436760408301600a815269080808081058dd1d585b60b21b602082015260400190565b604081526000620043bb60408301856200430e565b9050826020830152939250505056fe60a06040526011805460ff191690553480156200001b57600080fd5b506040516200446c3803806200446c8339810160408190526200003e91620005f4565b848460036200004e838262000724565b5060046200005d828262000724565b50506005805460ff19166012179055506000620000773390565b60058054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b805460ff19169055620000f2836005805460ff191660ff92909216919091179055565b60055460ff166200010590600a62000903565b62000111908762000914565b600881905550737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200016a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019091906200092e565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021891906200092e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000266573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028c91906200092e565b6001600160a01b031660808190526000908152601460209081526040808320805460ff19908116600117909155601590925290912080549091166002179055620002d860055460ff1690565b620002e590600a62000903565b620002f1908362000914565b600e5560055460ff166200030790600a62000903565b62000313908262000914565b600f5560055460ff166200032990600a62000903565b6200033690600162000914565b60105530600090815260136020819052604082208054600160ff1991821681179092558380527f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c805490911682179055916200039f60055461010090046001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905562000408620003e360055461010090046001600160a01b031690565b60055460ff16620003f690600a62000903565b62000402908962000914565b62000414565b50505050505062000976565b6001600160a01b0382166200046f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b6200048b816002546200051860201b620024f01790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620004be918390620024f062000518821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b600062000526828462000960565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200055757600080fd5b81516001600160401b03808211156200057457620005746200052f565b604051601f8301601f19908116603f011681019082821181831017156200059f576200059f6200052f565b81604052838152602092508683858801011115620005bc57600080fd5b600091505b83821015620005e05785820183015181830184015290820190620005c1565b600093810190920192909252949350505050565b60008060008060008060c087890312156200060e57600080fd5b865160208801519096506001600160401b03808211156200062e57600080fd5b6200063c8a838b0162000545565b965060408901519150808211156200065357600080fd5b506200066289828a0162000545565b945050606087015160ff811681146200067a57600080fd5b809350506080870151915060a087015190509295509295509295565b600181811c90821680620006ab57607f821691505b602082108103620006cc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200051357600081815260208120601f850160051c81016020861015620006fb5750805b601f850160051c820191505b818110156200071c5782815560010162000707565b505050505050565b81516001600160401b038111156200074057620007406200052f565b620007588162000751845462000696565b84620006d2565b602080601f831160018114620007905760008415620007775750858301515b600019600386901b1c1916600185901b1785556200071c565b600085815260208120601f198616915b82811015620007c157888601518255948401946001909101908401620007a0565b5085821015620007e05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008475781600019048211156200082b576200082b620007f0565b808516156200083957918102915b93841c93908002906200080b565b509250929050565b600082620008605750600162000529565b816200086f5750600062000529565b81600181146200088857600281146200089357620008b3565b600191505062000529565b60ff841115620008a757620008a7620007f0565b50506001821b62000529565b5060208310610133831016604e8410600b8410161715620008d8575081810a62000529565b620008e4838362000806565b8060001904821115620008fb57620008fb620007f0565b029392505050565b60006200052660ff8416836200084f565b8082028115828204841417620005295762000529620007f0565b6000602082840312156200094157600080fd5b81516001600160a01b03811681146200095957600080fd5b9392505050565b80820180821115620005295762000529620007f0565b608051613ad362000999600039600081816107e20152611c890152613ad36000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c80638f3f5254116101d3578063c7c4ff4611610104578063f2fde38b116100a2578063f78080601161007c578063f780806014610817578063f9079b731461082a578063f9f92be41461084a578063fb8f3cc81461086d57600080fd5b8063f2fde38b146107ca578063f40acc3d146107dd578063f5423c891461080457600080fd5b8063dd62ed3e116100de578063dd62ed3e14610757578063f0f4426014610790578063f2b6b501146107a3578063f2c098b7146107b757600080fd5b8063c7c4ff461461071e578063cc6df13814610731578063dd4670641461074457600080fd5b8063a3504e7c11610171578063a97ed4d21161014b578063a97ed4d2146106a2578063b5b44106146106b5578063b9181611146106e8578063c4bb8cbe1461070b57600080fd5b8063a3504e7c14610659578063a457c2d71461067c578063a9059cbb1461068f57600080fd5b806397a84f85116101ad57806397a84f85146105e05780639af98541146106005780639b19251a146106235780639dc29fac1461064657600080fd5b80638f3f5254146105bc5780638f3fa860146105cf57806395d89b41146105d857600080fd5b806344c63eec116102ad5780636f6ff3bc1161024b578063715018a611610225578063715018a61461058d5780638456cb59146105955780638c0b5e221461059d5780638da5cb5b146105a657600080fd5b80636f6ff3bc1461053e5780637097f7931461055157806370a082311461056457600080fd5b806361d027b31161028757806361d027b3146104e55780636256d181146104fd578063676d3563146105105780636ef8834a1461052b57600080fd5b806344c63eec1461049c5780635376b092146104c75780635c975abb146104da57600080fd5b806324887e801161031a57806339509351116102f457806339509351146104665780633b6c0334146104795780633f4ba83a1461048157806340c10f191461048957600080fd5b806324887e8014610425578063313ce56714610438578063317d94531461045157600080fd5b8063095ea7b311610356578063095ea7b3146103c7578063166cc492146103ea57806318160ddd1461040a57806323b872dd1461041257600080fd5b8063060d206e1461037d57806306fdde0314610392578063090f215c146103b0575b600080fd5b61039061038b366004613414565b61088d565b005b61039a6108f1565b6040516103a79190613452565b60405180910390f35b6103b960105481565b6040519081526020016103a7565b6103da6103d53660046134a0565b610983565b60405190151581526020016103a7565b6103b96103f83660046134e2565b60186020526000908152604090205481565b6002546103b9565b6103da6104203660046134fd565b61099a565b61039061043336600461353e565b610a03565b60055460ff165b60405160ff90911681526020016103a7565b306000908152602081905260409020546103b9565b6103da6104743660046134a0565b610b00565b610390610b36565b610390610b90565b6103906104973660046134a0565b610c77565b600c546104af906001600160a01b031681565b6040516001600160a01b0390911681526020016103a7565b6103906104d5366004613557565b610ce5565b600b5460ff166103da565b600b546104af9061010090046001600160a01b031681565b61039061050b36600461353e565b610e25565b6104af737a250d5630b4cf539739df2c5dacb4c659f2488d81565b610390610539366004613414565b610f1b565b61039061054c366004613573565b6110bc565b61039061055f366004613590565b6112e7565b6103b9610572366004613573565b6001600160a01b031660009081526020819052604090205490565b6103906113bd565b61039061143d565b6103b9600f5481565b60055461010090046001600160a01b03166104af565b6103906105ca3660046134a0565b61154d565b6103b9600e5481565b61039a611615565b6103b96105ee3660046134e2565b60166020526000908152604090205481565b61043f61060e366004613573565b60156020526000908152604090205460ff1681565b6103da610631366004613573565b60136020526000908152604090205460ff1681565b6103906106543660046134a0565b611624565b61043f610667366004613573565b60146020526000908152604090205460ff1681565b6103da61068a3660046134a0565b61168e565b6103da61069d3660046134a0565b6116dd565b6103906106b036600461353e565b6116ea565b6106c86106c3366004613573565b61173b565b6040805194855260208501939093529183015260608201526080016103a7565b6103da6106f6366004613573565b60176020526000908152604090205460ff1681565b61039061071936600461353e565b6117fe565b600d546104af906001600160a01b031681565b61039061073f366004613414565b6119db565b61039061075236600461353e565b611dbe565b6103b96107653660046135c5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61039061079e366004613573565b611e6b565b600d546103da90600160a01b900460ff1681565b6103906107c5366004613573565b61201d565b6103906107d8366004613573565b6121ba565b6104af7f000000000000000000000000000000000000000000000000000000000000000081565b6103906108123660046134a0565b612219565b610390610825366004613590565b612418565b6103b9610838366004613573565b60196020526000908152604090205481565b6103da610858366004613573565b60126020526000908152604090205460ff1681565b6103b961087b366004613573565b601a6020526000908152604090205481565b6005546001600160a01b036101009091041633146108c65760405162461bcd60e51b81526004016108bd906135f3565b60405180910390fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b60606003805461090090613628565b80601f016020809104026020016040519081016040528092919081815260200182805461092c90613628565b80156109795780601f1061094e57610100808354040283529160200191610979565b820191906000526020600020905b81548152906001019060200180831161095c57829003601f168201915b5050505050905090565b6000610990338484612503565b5060015b92915050565b60006109a7848484612628565b6109f984336109f485604051806060016040528060288152602001613a51602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190612c33565b612503565b5060019392505050565b6005546001600160a01b03610100909104163314610a335760405162461bcd60e51b81526004016108bd906135f3565b60008111610aa95760405162461bcd60e51b815260206004820152603f60248201527f546178546f6b656e2e736f6c3a3a7570646174654d617857616c6c657453697a60448201527f652829205f6d617857616c6c657453697a65206d75737420626520677420300060648201526084016108bd565b60055460ff16610aba90600a61375c565b610ac4908261376b565b600e8190556040519081527f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109909185906109f490866124f0565b6005546001600160a01b03610100909104163314610b665760405162461bcd60e51b81526004016108bd906135f3565b60115460ff16610b8e57610b8e610b893060009081526020819052604090205490565b612c5f565b565b6005546001600160a01b03610100909104163314610bc05760405162461bcd60e51b81526004016108bd906135f3565b600b5460ff16610c385760405162461bcd60e51b815260206004820152603d60248201527f546178546f6b656e2e736f6c3a3a7768656e50617573656428292c20436f6e7460448201527f72616374206973206e6f742063757272656e746c79207061757365642e00000060648201526084016108bd565b600b805460ff191690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a1565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b03161480610cbb57503360009081526017602052604090205460ff1615156001145b610cd75760405162461bcd60e51b81526004016108bd90613782565b610ce18282612d36565b5050565b6005546001600160a01b03610100909104163314610d155760405162461bcd60e51b81526004016108bd906135f3565b6107d0811115610d8d5760405162461bcd60e51b815260206004820152603860248201527f546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e74735460448201527f617828292c205f627074203e20323030302028323025292e000000000000000060648201526084016108bd565b600d54600160a01b900460ff1615610e0f576040805162461bcd60e51b81526020600482015260248101919091527f546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e74735460448201527f617828292c205461786174696f6e20686173206265656e2072656d6f7665642e60648201526084016108bd565b60ff909116600090815260166020526040902055565b6005546001600160a01b03610100909104163314610e555760405162461bcd60e51b81526004016108bd906135f3565b60008111610ecb5760405162461bcd60e51b815260206004820152603b60248201527f546178546f6b656e2e736f6c3a3a7570646174654d61785478416d6f756e742860448201527f29205f6d61785478416d6f756e74206d7573742062652067742030000000000060648201526084016108bd565b60055460ff16610edc90600a61375c565b610ee6908261376b565b600f8190556040519081527fff3dd5e80294197918c284bbfc3dadd97d0b40ce92106110946329088f80068a90602001610af5565b6005546001600160a01b03610100909104163314610f4b5760405162461bcd60e51b81526004016108bd906135f3565b6001600160a01b038216610fba5760405162461bcd60e51b815260206004820152603060248201527f546178546f6b656e2e736f6c3a3a757064617465417574686f72697a65644c6960448201526f073742829205f6f776e6572203d3d20360841b60648201526084016108bd565b6001600160a01b03821660009081526017602052604090205460ff1615158115151461105d5760405162461bcd60e51b815260206004820152604660248201527f546178546f6b656e2e736f6c3a3a757064617465417574686f72697a65644c6960448201527f73742829205f6163636f756e7420697320616c72656164792073657420746f206064820152655f737461746560d01b608482015260a4016108bd565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f351731b7072c47dd7498a1db554905beb804daf2833acfabd6e954d1fac65cfd910160405180910390a25050565b6005546001600160a01b036101009091041633146110ec5760405162461bcd60e51b81526004016108bd906135f3565b600c546001600160a01b03908116908216036111705760405162461bcd60e51b815260206004820152603a60248201527f546178546f6b656e2e736f6c3a3a73657456657374696e67282920616c72656160448201527f64792073657420746f207472656173757279206164647265737300000000000060648201526084016108bd565b6001600160a01b0381166111ec5760405162461bcd60e51b815260206004820152603860248201527f546178546f6b656e2e736f6c3a3a73657456657374696e67282920747265617360448201527f7572792063616e6e6f742062652061646472657373283029000000000000000060648201526084016108bd565b600c80546001600160a01b0319166001600160a01b03831690811790915561121590600161088d565b600c546040805163022b1d8960e21b815290516000926001600160a01b0316916308ac76249160048083019260209291908290030181865afa15801561125f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128391906137df565b600c5490915061129c906001600160a01b031682612d36565b600c54604080516001600160a01b03928316815291841660208301527fa596bfd2fd3f8533a574f9df13f553b4d5751c65c233b974b15fa91891857f3e910160405180910390a15050565b6005546001600160a01b036101009091041633146113175760405162461bcd60e51b81526004016108bd906135f3565b60038160ff16106113905760405162461bcd60e51b815260206004820152603e60248201527f546178546f6b656e3a3a75706461746553656e6465725461785479706528292c60448201527f205f74617854797065206d757374206265206c657373207468616e20332e000060648201526084016108bd565b6001600160a01b03919091166000908152601460205260409020805460ff191660ff909216919091179055565b6005546001600160a01b036101009091041633146113ed5760405162461bcd60e51b81526004016108bd906135f3565b60055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6005546001600160a01b0361010090910416331461146d5760405162461bcd60e51b81526004016108bd906135f3565b3361147a600b5460ff1690565b158061149e57506001600160a01b03811660009081526013602052604090205460ff165b6115105760405162461bcd60e51b815260206004820152603f60248201527f546178546f6b656e2e736f6c3a3a7768656e4e6f74506175736564556e69282960448201527f2c20436f6e74726163742069732063757272656e746c79207061757365642e0060648201526084016108bd565b600b805460ff191660011790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610af5565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b0316148061159157503360009081526017602052604090205460ff1615156001145b6115ad5760405162461bcd60e51b81526004016108bd90613782565b6115b78282612d36565b6001600160a01b038216600090815260196020526040812080548392906115df9084906137f8565b90915550506001600160a01b0382166000908152601a60205260408120805483929061160c9084906137f8565b90915550505050565b60606004805461090090613628565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b0316148061166857503360009081526017602052604090205460ff1615156001145b6116845760405162461bcd60e51b81526004016108bd90613782565b610ce18282612e15565b600061099033846109f485604051806060016040528060258152602001613a79602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190612c33565b6000610990338484612628565b6005546001600160a01b0361010090910416331461171a5760405162461bcd60e51b81526004016108bd906135f3565b60055460ff1661172b90600a61375c565b611735908261376b565b60105550565b6040516370a0823160e01b81526001600160a01b0382166004820152600090819081908190819030906370a0823190602401602060405180830381865afa15801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae91906137df565b6001600160a01b0387166000908152601960205260408120549192506117d4828461380b565b6001600160a01b03989098166000908152601a602052604090205492989197965091945092505050565b6005546001600160a01b0361010090910416331461182e5760405162461bcd60e51b81526004016108bd906135f3565b80602a146118965760405162461bcd60e51b815260206004820152602f60248201527f546178546f6b656e3a3a7065726d616e656e746c7952656d6f7665546178657360448201526e141496102fb5b2bc90109e901a191760891b60648201526084016108bd565b600d54600160a01b900460ff16156119275760405162461bcd60e51b815260206004820152604860248201527f546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e74735460448201527f617828292c205461786174696f6e2068617320616c7265616479206265656e206064820152673932b6b7bb32b21760c11b608482015260a4016108bd565b601660205260007f0263c2b778d062355049effc2dece97bc6547ff8a88a3258daa512061c2153dd8190557f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf49819055600281527fcaff291fe014adc6b72a172705750b4cabe8f8667664d2924a166caab2885648819055600d805460ff60a01b1916600160a01b1790556040517fc75f57ef1bbf80f914dce2d672e5f9474567b8de900e1580de72874d08ff86b99190a150565b6005546001600160a01b03610100909104163314611a0b5760405162461bcd60e51b81526004016108bd906135f3565b8015611d93576001600160a01b03821660009081526013602052604090205460ff1615611a9d5760405162461bcd60e51b815260206004820152604660248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c69737420612077686974656c6973746564206064820152651dd85b1b195d60d21b608482015260a4016108bd565b600b546001600160a01b03610100909104811690831603611b145760405162461bcd60e51b815260206004820152603a60248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c69737420747265617375727900000000000060648201526084016108bd565b600d546001600160a01b0390811690831603611b865760405162461bcd60e51b815260206004820152603b60248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c697374206465706f7369746f72000000000060648201526084016108bd565b600c546001600160a01b0390811690831603611bf85760405162461bcd60e51b815260206004820152603960248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c6973742076657374696e670000000000000060648201526084016108bd565b737a250d5630b4cf539739df2c5dacb4c659f2488c196001600160a01b03831601611c875760405162461bcd60e51b8152602060048201526044602482018190526000805160206139e9833981519152908201527f2063616e6e6f7420626c61636b6c6973742074686520556e697377617020524f6064820152632aaa22a960e11b608482015260a4016108bd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611d275760405162461bcd60e51b815260206004820152604260248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c6973742074686520556e697377617020504160648201526124a960f11b608482015260a4016108bd565b306001600160a01b03831603611d935760405162461bcd60e51b815260206004820152603f60248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c697374207468697320636f6e74726163740060648201526084016108bd565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b03610100909104163314611dee5760405162461bcd60e51b81526004016108bd906135f3565b60058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055611e2881426137f8565b60075560055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6005546001600160a01b03610100909104163314611e9b5760405162461bcd60e51b81526004016108bd906135f3565b600b546001600160a01b03610100909104811690821603611f245760405162461bcd60e51b815260206004820152603b60248201527f546178546f6b656e2e736f6c3a3a7365745472656173757279282920616c726560448201527f6164792073657420746f2074726561737572792061646472657373000000000060648201526084016108bd565b6001600160a01b038116611fa05760405162461bcd60e51b815260206004820152603960248201527f546178546f6b656e2e736f6c3a3a73657454726561737572792829207472656160448201527f737572792063616e6e6f7420626520616464726573732830290000000000000060648201526084016108bd565b600b8054610100600160a81b0319166101006001600160a01b0384811682029290921792839055611fd4920416600161088d565b600b54604080516001600160a01b036101009093048316815291831660208301527f4ab5be82436d353e61ca18726e984e561f5c1cc7c6d38b29d2553c790434705a9101610af5565b6005546001600160a01b0361010090910416331461204d5760405162461bcd60e51b81526004016108bd906135f3565b600d546001600160a01b03908116908216036120d15760405162461bcd60e51b815260206004820152603c60248201527f546178546f6b656e2e736f6c3a3a7365746465706f7369746f72282920616c7260448201527f656164792073657420746f20747265617375727920616464726573730000000060648201526084016108bd565b6001600160a01b03811661214d5760405162461bcd60e51b815260206004820152603a60248201527f546178546f6b656e2e736f6c3a3a7365746465706f7369746f7228292074726560448201527f61737572792063616e6e6f74206265206164647265737328302900000000000060648201526084016108bd565b600d80546001600160a01b0319166001600160a01b03831690811790915561217690600061088d565b600d54604080516001600160a01b03928316815291831660208301527f830becdc16911bd35301d7e36682bb0bf344b313f5406e9eb6d8632a349763449101610af5565b6005546001600160a01b036101009091041633146121ea5760405162461bcd60e51b81526004016108bd906135f3565b6001600160a01b0381166000908152601360205260409020805460ff1916600117905561221681612f19565b50565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b0316148061225d57503360009081526017602052604090205460ff1615156001145b6122795760405162461bcd60e51b81526004016108bd90613782565b6001600160a01b0382166122f55760405162461bcd60e51b815260206004820152603a60248201527f546178546f6b656e2e736f6c3a3a696e6475737472794275726e28292c20436160448201527f6e6e6f74206275726e20746f207a65726f20616464726573732e00000000000060648201526084016108bd565b80612315836001600160a01b031660009081526020819052604090205490565b10156123975760405162461bcd60e51b815260206004820152604560248201527f546178546f6b656e2e736f6c3a3a696e6475737472794275726e28292c20496e60448201527f73756666696369656e742062616c616e6365206f66202450524f564520746f20606482015264313ab9371760d91b608482015260a4016108bd565b6001600160a01b03821660009081526019602052604090205481116123f3576123c08282612e15565b6001600160a01b038216600090815260196020526040812080548392906123e890849061380b565b90915550610ce19050565b6123fd8282612e15565b506001600160a01b0316600090815260196020526040812055565b6005546001600160a01b036101009091041633146124485760405162461bcd60e51b81526004016108bd906135f3565b60038160ff16106124c3576040805162461bcd60e51b81526020600482015260248101919091527f546178546f6b656e3a3a7570646174655265636569766572546178547970652860448201527f292c205f74617854797065206d757374206265206c657373207468616e20332e60648201526084016108bd565b6001600160a01b03919091166000908152601560205260409020805460ff191660ff909216919091179055565b60006124fc82846137f8565b9392505050565b6001600160a01b0383166125655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108bd565b6001600160a01b0382166125c65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108bd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000612636600b5460ff1690565b158061265a57506001600160a01b03841660009081526013602052604090205460ff165b8061267d57506001600160a01b03831660009081526013602052604090205460ff165b8061269757503360009081526013602052604090205460ff165b6127095760405162461bcd60e51b815260206004820152603760248201527f546178546f6b656e2e736f6c3a3a5f7472616e73666572282920636f6e74726160448201527f63742069732063757272656e746c79207061757365642e00000000000000000060648201526084016108bd565b81612729856001600160a01b031660009081526020819052604090205490565b101561278a5760405162461bcd60e51b815260206004820152602a60248201527f546178546f6b656e3a3a5f7472616e73666572282920696e73756666696369656044820152696e742062616c616e636560b01b60648201526084016108bd565b600082116127f65760405162461bcd60e51b815260206004820152603360248201527f546178546f6b656e3a3a5f7472616e73666572282920616d6f756e74206d75736044820152720742062652067726561746572207468616e203606c1b60648201526084016108bd565b6001600160a01b03831660009081526013602052604090205460ff1615801561283857506001600160a01b03841660009081526013602052604090205460ff16155b801561285457503360009081526013602052604090205460ff16155b801561286957506001600160a01b0384163014155b15612c225781600f5410156128d95760405162461bcd60e51b815260206004820152603060248201527f546178546f6b656e3a3a5f7472616e73666572282920616d6f756e742065786360448201526f1959591cc81b585e151e105b5bdd5b9d60821b60648201526084016108bd565b6001600160a01b03841660009081526012602052604090205460ff16156129565760405162461bcd60e51b815260206004820152602b60248201527f546178546f6b656e3a3a5f7472616e7366657228292073656e6465722069732060448201526a189b1858dadb1a5cdd195960aa1b60648201526084016108bd565b6001600160a01b03831660009081526012602052604090205460ff16156129d55760405162461bcd60e51b815260206004820152602d60248201527f546178546f6b656e3a3a5f7472616e736665722829207265636569766572206960448201526c1cc8189b1858dadb1a5cdd1959609a1b60648201526084016108bd565b6001600160a01b03841660009081526014602052604090205460ff1615612a1457506001600160a01b03831660009081526014602052604090205460ff165b6001600160a01b03831660009081526015602052604090205460ff1615612a5357506001600160a01b03821660009081526015602052604090205460ff165b60ff811660009081526016602052604081205461271090612a74908561376b565b612a7e919061381e565b90506000612a8c828561380b565b905083612a9982846137f8565b14612af85760405162461bcd60e51b815260206004820152602960248201527f546178546f6b656e3a3a5f7472616e73666572282920637269746963616c206d60448201526830ba341032b93937b960b91b60648201526084016108bd565b8260ff16600214158015612b1a5750600d546001600160a01b03868116911614155b15612bb757600e5481612b42876001600160a01b031660009081526020819052604090205490565b612b4c91906137f8565b1115612bb75760405162461bcd60e51b815260206004820152603460248201527f546178546f6b656e3a3a5f7472616e73666572282920616d6f756e74206578636044820152731959591cc81b585e15d85b1b195d105b5bdd5b9d60621b60648201526084016108bd565b8260ff166002148015612bcd575060115460ff16155b15612c055730600090815260208190526040902054600f54811115612bf15750600f545b6010548110612c0357612c0381612c5f565b505b612c10868683613015565b612c1b863084613015565b5050612c2d565b612c2d848484613015565b50505050565b60008184841115612c575760405162461bcd60e51b81526004016108bd9190613452565b505050900390565b6011805460ff191660011790556000612c7782613198565b90508015612d2857600b54604051630eab2cb760e31b8152600481018390526101009091046001600160a01b03169063755965b890602401600060405180830381600087803b158015612cc957600080fd5b505af1158015612cdd573d6000803e3d6000fd5b5050600b546040518481526101009091046001600160a01b031692507f831f3151ac4fe05e9e25607e80c8710ed1dbc868f9edf4c2852b87d14eec373b915060200160405180910390a25b50506011805460ff19169055565b6001600160a01b038216612d8c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108bd565b600254612d9990826124f0565b6002556001600160a01b038216600090815260208190526040902054612dbf90826124f0565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6001600160a01b038216612e755760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108bd565b612eb281604051806060016040528060228152602001613a09602291396001600160a01b0385166000908152602081905260409020549190612c33565b6001600160a01b038316600090815260208190526040902055600254612ed890826133f3565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001612e09565b6005546001600160a01b03610100909104163314612f495760405162461bcd60e51b81526004016108bd906135f3565b6001600160a01b038116612fae5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108bd565b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166130795760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108bd565b6001600160a01b0382166130db5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108bd565b61311881604051806060016040528060268152602001613a2b602691396001600160a01b0386166000908152602081905260409020549190612c33565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461314790826124f0565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161261b565b6040805160028082526060820183526000928392919060208301908036833701905050905030816000815181106131d1576131d1613856565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613243573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613267919061386c565b8160018151811061327a5761327a613856565b60200260200101906001600160a01b031690816001600160a01b0316815250506132b930737a250d5630b4cf539739df2c5dacb4c659f2488d85612503565b60405163d06ca61f60e01b8152600090737a250d5630b4cf539739df2c5dacb4c659f2488d9063d06ca61f906132f590879086906004016138cd565b600060405180830381865afa158015613312573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261333a91908101906138ee565b600b54909150737a250d5630b4cf539739df2c5dacb4c659f2488d90635c11d795908690600090869061010090046001600160a01b031661337d4261012c6137f8565b6040518663ffffffff1660e01b815260040161339d9594939291906139ac565b600060405180830381600087803b1580156133b757600080fd5b505af11580156133cb573d6000803e3d6000fd5b50505050806001815181106133e2576133e2613856565b602002602001015192505050919050565b60006124fc828461380b565b6001600160a01b038116811461221657600080fd5b6000806040838503121561342757600080fd5b8235613432816133ff565b91506020830135801515811461344757600080fd5b809150509250929050565b600060208083528351808285015260005b8181101561347f57858101830151858201604001528201613463565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156134b357600080fd5b82356134be816133ff565b946020939093013593505050565b803560ff811681146134dd57600080fd5b919050565b6000602082840312156134f457600080fd5b6124fc826134cc565b60008060006060848603121561351257600080fd5b833561351d816133ff565b9250602084013561352d816133ff565b929592945050506040919091013590565b60006020828403121561355057600080fd5b5035919050565b6000806040838503121561356a57600080fd5b6134be836134cc565b60006020828403121561358557600080fd5b81356124fc816133ff565b600080604083850312156135a357600080fd5b82356135ae816133ff565b91506135bc602084016134cc565b90509250929050565b600080604083850312156135d857600080fd5b82356135e3816133ff565b91506020830135613447816133ff565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061363c57607f821691505b60208210810361365c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156136b357816000190482111561369957613699613662565b808516156136a657918102915b93841c939080029061367d565b509250929050565b6000826136ca57506001610994565b816136d757506000610994565b81600181146136ed57600281146136f757613713565b6001915050610994565b60ff84111561370857613708613662565b50506001821b610994565b5060208310610133831016604e8410600b8410161715613736575081810a610994565b6137408383613678565b806000190482111561375457613754613662565b029392505050565b60006124fc60ff8416836136bb565b808202811582820484141761099457610994613662565b6020808252603d908201527f546178546f6b656e2e736f6c3a3a6f6e6c79417574686f72697a656428292c2060408201527f6d73672e73656e646572206973206e6f7420617574686f72697a65642e000000606082015260800190565b6000602082840312156137f157600080fd5b5051919050565b8082018082111561099457610994613662565b8181038181111561099457610994613662565b60008261383b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561387e57600080fd5b81516124fc816133ff565b600081518084526020808501945080840160005b838110156138c25781516001600160a01b03168752958201959082019060010161389d565b509495945050505050565b8281526040602082015260006138e66040830184613889565b949350505050565b6000602080838503121561390157600080fd5b825167ffffffffffffffff8082111561391957600080fd5b818501915085601f83011261392d57600080fd5b81518181111561393f5761393f613840565b8060051b604051601f19603f8301168101818110858211171561396457613964613840565b60405291825284820192508381018501918883111561398257600080fd5b938501935b828510156139a057845184529385019392850192613987565b98975050505050505050565b85815284602082015260a0604082015260006139cb60a0830186613889565b6001600160a01b039490941660608301525060800152939250505056fe546178546f6b656e2e736f6c3a3a6d6f64696679426c61636b6c69737428292c45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f6afa79d2dd6dc16daa6196b4a596cb84785ca65de715a6382c40987a3939e4c64736f6c6343000811003360a06040523480156200001157600080fd5b5060405162001962380380620019628339810160408190526200003491620001b2565b600080546001600160a01b0319163390811782556040519091829160008051602062001942833981519152908290a3506001600160a01b0382166080526200007c8162000084565b5050620001ea565b6000546001600160a01b03163314620000e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0381166200014b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620000db565b600080546040516001600160a01b03808516939216916000805160206200194283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b0381168114620001ad57600080fd5b919050565b60008060408385031215620001c657600080fd5b620001d18362000195565b9150620001e16020840162000195565b90509250929050565b60805161172e62000214600039600081816101d7015281816108320152610be5015261172e6000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806385d4cad3116100ad578063d36862e811610071578063d36862e814610251578063dd46706414610264578063ec20b45714610277578063f02c6d8f1461028a578063f2fde38b1461029357600080fd5b806385d4cad3146101d257806388a772ef146102115780638da5cb5b14610224578063a145f1b514610235578063c7e42b1b1461023e57600080fd5b806350ad827a116100f457806350ad827a1461016d5780635b904cb7146101825780636f7bc9be1461018a578063715018a6146101bd5780637f87bbd6146101c557600080fd5b806308ac7624146101265780630bca8bcd1461013d57806342714978146101505780634e71d92d14610165575b600080fd5b6005545b6040519081526020015b60405180910390f35b61012a61014b366004611501565b6102a6565b61016361015e366004611501565b61041e565b005b6101636106ac565b610175610989565b6040516101349190611523565b610163610a0b565b6101ad610198366004611501565b60076020526000908152604090205460ff1681565b6040519015158152602001610134565b610163610aea565b6004546101ad9060ff1681565b6101f97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610134565b61012a61021f366004611501565b610b5e565b6000546001600160a01b03166101f9565b61012a60055481565b61016361024c366004611501565b610bb9565b61012a61025f366004611501565b610f4b565b610163610272366004611585565b610fa6565b61016361028536600461159e565b61103d565b61012a60035481565b6101636102a1366004611501565b611302565b6001600160a01b03811660009081526007602052604081205460ff1680156102d0575060045460ff165b156104115760006102e0836113ec565b905060006102ed84610b5e565b90508060068381548110610303576103036115c8565b90600052602060002090600302016002015410610324575060009392505050565b60006224ea006003544261033891906115f4565b610342919061160d565b90506000606461035384600861162f565b61035d919061160d565b610367908361162f565b606461037485600c61162f565b61037e919061160d565b6103889190611646565b9050828111806103995750600b8210155b156103d557600684815481106103b1576103b16115c8565b906000526020600020906003020160020154836103ce91906115f4565b9050610408565b600684815481106103e8576103e86115c8565b9060005260206000209060030201600201548161040591906115f4565b90505b95945050505050565b506000919050565b919050565b6000546001600160a01b031633146104515760405162461bcd60e51b815260040161044890611659565b60405180910390fd5b6001600160a01b0381166104cd5760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f7420626520616464726573732830290000000000006064820152608401610448565b60006104d8826113ec565b90506000600682815481106104ef576104ef6115c8565b600091825260209182902060408051606081018252600390930290910180546001600160a01b03168352600180820154948401949094526002015490820152600680549193509161053f916115f4565b8154811061054f5761054f6115c8565b906000526020600020906003020160068381548110610570576105706115c8565b60009182526020909120825460039092020180546001600160a01b0319166001600160a01b039092169190911781556001808301548183015560029283015492909101919091556006805483926105c6916115f4565b815481106105d6576105d66115c8565b600091825260209182902083516003929092020180546001600160a01b0319166001600160a01b03909216919091178155908201516001820155604090910151600290910155600680548061062d5761062d61168e565b6000828152602080822060036000199094019384020180546001600160a01b031916815560018101839055600201829055919092556001600160a01b03851680835260079091526040808320805460ff191690555190917fba0013628ccb89af5bb18edf764d3a7b35c07b894848b8e6fd3434719de39c7d91a2505050565b3360009081526007602052604090205460ff1615156001146107365760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f720000000000006064820152608401610448565b60045460ff1661079c5760405162461bcd60e51b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b6064820152608401610448565b60006107a7336102a6565b9050600081116108165760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b6064820152608401610448565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116a4565b6109065760405162461bcd60e51b815260206004820152602a60248201527f56657374696e672e736f6c3a3a636c61696d2829207472616e7366657220756e6044820152691cdd58d8d95cdcd99d5b60b21b6064820152608401610448565b6000610911336113ec565b90508160068281548110610927576109276115c8565b906000526020600020906003020160020160008282546109479190611646565b909155505060408051338152602081018490527fc9ff33ee3842ec05cab3a4e2b17aa19694b6c461ea543be5752366f912a6539d910160405180910390a15050565b60606006805480602002602001604051908101604052809291908181526020016000905b82821015610a02576000848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016109ad565b50505050905090565b6000546001600160a01b03163314610a355760405162461bcd60e51b815260040161044890611659565b60045460ff1615610aae5760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a656e61626c6556657374696e6728292076657360448201527f74696e6720697320616c726561647920656e61626c65640000000000000000006064820152608401610448565b6004805460ff19166001179055426003556040517ff78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa390600090a1565b6000546001600160a01b03163314610b145760405162461bcd60e51b815260040161044890611659565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03811660009081526007602052604081205460ff1615610411576000610b8a836113ec565b905060068181548110610b9f57610b9f6115c8565b906000526020600020906003020160010154915050919050565b6000546001600160a01b03163314610be35760405162461bcd60e51b815260040161044890611659565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610c8a5760405162461bcd60e51b815260206004820152603960248201527f56657374696e672e736f6c3a3a7769746864726177457263323028292063616e60448201527f6e6f74207769746864726177202450524f564520746f6b656e000000000000006064820152608401610448565b6001600160a01b038116610d065760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920746f6b60448201527f656e2063616e6e6f7420626520616464726573732830290000000000000000006064820152608401610448565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7191906116c6565b905060008111610de95760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920696e7360448201527f756666696369656e7420746f6b656e2062616c616e63650000000000000000006064820152608401610448565b6000826001600160a01b031663a9059cbb610e0c6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d91906116a4565b905080610ee75760405162461bcd60e51b815260206004820152603260248201527f56657374696e672e736f6c3a3a776974686472617745726332302829207472616044820152711b9cd9995c881d5b9cdd58d8d95cdcd99d5b60721b6064820152608401610448565b7f3ff9434501bb42cce78344c3420ec1273f8b404aba16aaae994c0d413b91bb4f8383610f1c6000546001600160a01b031690565b604080516001600160a01b039485168152602081019390935292168183015290519081900360600190a1505050565b6001600160a01b03811660009081526007602052604081205460ff1615610411576000610f77836113ec565b905060068181548110610f8c57610f8c6115c8565b906000526020600020906003020160020154915050919050565b6000546001600160a01b03163314610fd05760405162461bcd60e51b815260040161044890611659565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610fff8142611646565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000546001600160a01b031633146110675760405162461bcd60e51b815260040161044890611659565b6001600160a01b03821660009081526007602052604090205460ff16156110ed5760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b6064820152608401610448565b6001600160a01b0382166111695760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f74206265206164647265737328302900000000000000006064820152608401610448565b600081116111d75760405162461bcd60e51b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b6064820152608401610448565b6001600160a01b0382811660008181526007602090815260408083208054600160ff1990911681179091558151606081018352948552918401868152908401838152600680549384018155845293517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600390930292830180546001600160a01b031916919096161790945592517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4084015590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4190920191909155600580548392906112c5908490611646565b90915550506040516001600160a01b038316907f62e6a5118be03f9bfedb79b0ed7ed75ee4a9e15fc4c69d2c4976acde26fa2d5f90600090a25050565b6000546001600160a01b0316331461132c5760405162461bcd60e51b815260040161044890611659565b6001600160a01b0381166113915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610448565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526007602052604081205460ff16151560011461147f5760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f7200000000000000006064820152608401610448565b6000805b6006548110156114e357836001600160a01b0316600682815481106114aa576114aa6115c8565b60009182526020909120600390910201546001600160a01b0316036114d1578091506114e3565b806114db816116df565b915050611483565b5092915050565b80356001600160a01b038116811461041957600080fd5b60006020828403121561151357600080fd5b61151c826114ea565b9392505050565b602080825282518282018190526000919060409081850190868401855b8281101561157857815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101611540565b5091979650505050505050565b60006020828403121561159757600080fd5b5035919050565b600080604083850312156115b157600080fd5b6115ba836114ea565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115611607576116076115de565b92915050565b60008261162a57634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417611607576116076115de565b80820180821115611607576116076115de565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156116b657600080fd5b8151801515811461151c57600080fd5b6000602082840312156116d857600080fd5b5051919050565b6000600182016116f1576116f16115de565b506001019056fea2646970667358221220d2355449aa619c52df97b3ae1052a171b8fa5fa41104c173bef64d6cc1fd6c1b64736f6c634300081100338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0608060405234801561001057600080fd5b506105b7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea2646970667358221220843b2a7925f054aa4267ccb704b85ca5db3172d6fe2b6977a4bbeadddcd28f0164736f6c63430008110033b2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a2646970667358221220583485df38d2f8d815109cb31c6d64fc274c9066b9f2f549bb1c045690fe199d64736f6c63430008110033", + "sourceMap": "306:10985:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5294:1960;;;:::i;:::-;;1375:828;;;:::i;432:907::-;;;:::i;1745:36:26:-;;1780:1;1745:36;;;;;186:4:27;174:17;;;156:36;;144:2;129:18;1745:36:26;;;;;;;;7321:1879:25;;;;;;:::i;:::-;;:::i;4740:583:26:-;;;;;;:::i;:::-;;:::i;5374:479::-;;;;;;:::i;:::-;;:::i;2178:45::-;;2221:2;2178:45;;1829:36;;1864:1;1829:36;;2283:1126:25;;;:::i;6028:291:26:-;;;;;;:::i;:::-;;:::i;:::-;;;1429:25:27;;;1417:2;1402:18;6028:291:26;1283:177:27;2262:45:26;;2305:2;2262:45;;4221:461;;;;;;:::i;:::-;;:::i;9264:2022:25:-;;;;;;:::i;:::-;;:::i;2092:45:26:-;;2135:2;2092:45;;2005:36;;2040:1;2005:36;;3462:1782:25;;;:::i;3312:184:26:-;;;:::i;1819:584:0:-;;;:::i;:::-;;;2154:14:27;;2147:22;2129:41;;2117:2;2102:18;1819:584:0;1989:187:27;5861:159:26;;;;;;:::i;:::-;;:::i;1916:36::-;;1951:1;1916:36;;1655;;1690:1;1655:36;;3620:551;;;:::i;1572:26:0:-;;;;;;;;;5294:1960:25;5407:10;;5435:7;;5407:46;;-1:-1:-1;;;5407:46:25;;-1:-1:-1;;;;;5435:7:25;;;5407:46;;;2355:51:27;5379:15:25;2422:18:27;;;2415:34;;;5379:15:25;5407:10;;;;;:19;;2328:18:27;;5407:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5499:3:25;;5529:7;;5499:39;;-1:-1:-1;;;5499:39:25;;-1:-1:-1;;;;;5529:7:25;;;5499:39;;;2856:51:27;5499:3:25;;;:21;;2829:18:27;;5499:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5492:47;;;;:::i;:::-;5648:3;;5676:7;;5694:3;;5648:68;;-1:-1:-1;;;5648:68:25;;-1:-1:-1;;;;;5648:3:25;;;;:19;;:68;;5676:7;;;;5694:3;;;5700:15;;5648:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5641:76;;;;:::i;:::-;5769:3;;5797:7;;5769:3;5815;5769:68;;-1:-1:-1;;;5769:68:25;;-1:-1:-1;;;;;5769:3:25;;;;:19;;:68;;5797:7;;;;5815:3;;;5821:15;;5769:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5762:76;;;;:::i;:::-;5890:3;;5918:7;;5890:68;;-1:-1:-1;;;5890:68:25;;-1:-1:-1;;;;;5890:3:25;;;;:19;;:68;;5918:7;;;5890:3;;5942:15;;5890:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5883:76;;;;:::i;:::-;6034:13;6039:7;6034:4;:13::i;:::-;6065:3;;6087:7;;6065:31;;-1:-1:-1;;;6065:31:25;;-1:-1:-1;;;;;6087:7:25;;;6065:31;;;2856:51:27;6065:3:25;;;:13;;2829:18:27;;6065:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6058:39;;;;:::i;:::-;6183:10;;6212:3;;6183:34;;-1:-1:-1;;;6183:34:25;;-1:-1:-1;;;;;6212:3:25;;;6183:34;;;2856:51:27;6174:75:25;;6183:10;;;;;:20;;2829:18:27;;6183:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6220:26;6174:8;:75::i;:::-;6314:14;6319:8;6314:4;:14::i;:::-;6400:3;;6422:7;;6400:31;;-1:-1:-1;;;6400:31:25;;-1:-1:-1;;;;;6422:7:25;;;6400:31;;;2856:51:27;6400:3:25;;;:13;;2829:18:27;;6400:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6393:39;;;;:::i;:::-;6518:10;;;6547:3;6518:34;;-1:-1:-1;;;6518:34:25;;-1:-1:-1;;;;;6547:3:25;;;6518:34;;;2856:51:27;6509:74:25;;6518:10;;;;;:20;;2829:18:27;;6518:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6555:26;6509:8;:74::i;:::-;6649:14;6654:8;6649:4;:14::i;:::-;6761:3;;6783:7;;6761:31;;-1:-1:-1;;;6761:31:25;;-1:-1:-1;;;;;6783:7:25;;;6761:31;;;2856:51:27;6761:3:25;;;:13;;2829:18:27;;6761:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6754:39;;;;:::i;:::-;6868:10;;;6897:3;6868:34;;-1:-1:-1;;;6868:34:25;;-1:-1:-1;;;;;6897:3:25;;;6868:34;;;2856:51:27;6859:63:25;;6868:10;;;;;:20;;2829:18:27;;6868:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6905:15;6859:8;:63::i;:::-;6967:14;6972:8;6967:4;:14::i;:::-;7075:3;;7097:7;;7075:31;;-1:-1:-1;;;7075:31:25;;-1:-1:-1;;;;;7097:7:25;;;7075:31;;;2856:51:27;7075:3:25;;;:13;;2829:18:27;;7075:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7068:39;;;;:::i;:::-;7190:10;;7219:3;;7190:34;;-1:-1:-1;;;7190:34:25;;-1:-1:-1;;;;;7219:3:25;;;7190:34;;;2856:51:27;7181:63:25;;7190:10;;;;;:20;;2829:18:27;;7190:34:25;2710:203:27;7181:63:25;5353:1901;5294:1960::o;1375:828::-;1448:10;;:24;;;-1:-1:-1;;;1448:24:25;;;;1439:59;;-1:-1:-1;;;;;1448:10:25;;:22;;:24;;;;;;;;;;;;;;:10;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1478:19;1439:8;:59::i;:::-;1518:10;;:35;;-1:-1:-1;;;1518:35:25;;1547:4;1518:35;;;2856:51:27;1509:69:25;;-1:-1:-1;;;;;1518:10:25;;:20;;2829:18:27;;1518:35:25;;;;;;;;;;;;;;;;;;;;;;1509:69;1598:10;;1627:7;;1598:38;;-1:-1:-1;;;1598:38:25;;-1:-1:-1;;;;;1627:7:25;;;1598:38;;;2856:51:27;1589::25;;1598:10;;;;;:20;;2829:18:27;;1598:38:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1638:1;1589:8;:51::i;:::-;1660:10;;:18;;;-1:-1:-1;;;1660:18:25;;;;1651:46;;-1:-1:-1;;;;;1660:10:25;;:16;;:18;;;;;;;;;;;;;;:10;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1691:4;1651:8;:46::i;:::-;1717:10;;:20;;;-1:-1:-1;;;1717:20:25;;;;1708:49;;-1:-1:-1;;;;;1717:10:25;;:18;;:20;;;;;;;;;;;;;;:10;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1748:7;;-1:-1:-1;;;;;1748:7:25;1708:8;:49::i;:::-;1777:10;;1798:20;;;-1:-1:-1;;;1798:20:25;;;;1768:60;;-1:-1:-1;;;;;1777:10:25;;:20;;:10;;1798:18;;:20;;;;;;;;;;;;;;1777:10;1798:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1777:42;;-1:-1:-1;;;;;;1777:42:25;;;;;;;-1:-1:-1;;;;;2874:32:27;;;1777:42:25;;;2856:51:27;2829:18;;1777:42:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1823:4;1768:8;:60::i;:::-;1848:10;;:41;;-1:-1:-1;;;1848:41:25;;-1:-1:-1;;;;;1848:10:25;;;:41;;;2856:51:27;;;1839:60:25;;1848:20;;2829:18:27;;1848:41:25;2710:203:27;1839:60:25;1919:10;;1940:18;;;-1:-1:-1;;;1940:18:25;;;;1910:60;;-1:-1:-1;;;;;1919:10:25;;:20;;:10;;1940:16;;:18;;;;;;;;;;;;;;1919:10;1940:18;;;;;;;;;;;;;;1910:60;1992:7;;:20;;;-1:-1:-1;;;1992:20:25;;;;1983:57;;-1:-1:-1;;;;;1992:7:25;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2028:10;;-1:-1:-1;;;;;2028:10:25;1983:8;:57::i;:::-;2060:7;;:26;;;-1:-1:-1;;;2060:26:25;;;;2051:39;;-1:-1:-1;;;;;2060:7:25;;:24;;:26;;;;;;;;;;;;;;:7;:26;;;;;;;;;;;;;;2051:39;2110:7;;:24;;;-1:-1:-1;;;2110:24:25;;;;2101:43;;-1:-1:-1;;;;;2110:7:25;;:22;;:24;;;;;;;;;;;;;;:7;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2138:5;2101:8;:43::i;:::-;2164:7;;:15;;;-1:-1:-1;;;2164:15:25;;;;2155:40;;-1:-1:-1;;;;;2164:7:25;;:13;;:15;;;;;;;;;;;;;;:7;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2190:3;;-1:-1:-1;;;;;2190:3:25;2155:8;:40::i;:::-;1375:828::o;432:907::-;467:14;:12;:14::i;:::-;492:13;:11;:13::i;:::-;700;860:2;917:13;970;673:352;;;;;:::i;:::-;4362:25:27;;;4423:3;4418:2;4403:18;;4396:31;;;4464:2;4443:19;;;4436:31;-1:-1:-1;;;4498:3:27;4483:19;;4476:41;4536:3;4570:2;4555:18;;4548:30;;;4614:1;4594:18;;;4587:29;-1:-1:-1;;;4647:3:27;4632:19;;4625:36;4745:4;4733:17;;;4728:2;4713:18;;4706:45;-1:-1:-1;4767:19:27;;4760:35;-1:-1:-1;4811:19:27;;4804:35;4693:3;4678:19;673:352:25;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;660:10:25;:365;;-1:-1:-1;;;;;;660:365:25;-1:-1:-1;;;;;660:365:25;;;;;;;;;1214:3;;1144:85;;660:365;;1214:3;;1144:85;;;:::i;:::-;-1:-1:-1;;;;;5080:15:27;;;5062:34;;5132:15;;5127:2;5112:18;;5105:43;5012:2;4997:18;1144:85:25;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1134:7:25;:95;;-1:-1:-1;;;;;;1134:95:25;-1:-1:-1;;;;;1134:95:25;;;;;;;;;1292:10;;:39;;-1:-1:-1;;;1292:39:25;;;;;2856:51:27;;;;1292:10:25;;;;:21;;2829:18:27;;1292:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;432:907::o;7321:1879::-;7414:48;7420:7;7429:13;7444:17;7414:5;:48::i;:::-;7533:10;;7561:7;;7533:46;;-1:-1:-1;;;7533:46:25;;-1:-1:-1;;;;;7561:7:25;;;7533:46;;;2355:51:27;2422:18;;;2415:34;;;7404:58:25;;-1:-1:-1;7533:10:25;;:19;;2328:18:27;;7533:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7648:3:25;;7626:27;;-1:-1:-1;;;7626:27:25;;-1:-1:-1;;;;;7648:3:25;;;7626:27;;;2856:51:27;7626:13:25;;;;2829:18:27;;7626:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7704:3:25;;7732:7;;7750:3;;7704:60;;-1:-1:-1;;;7704:60:25;;-1:-1:-1;;;;;7704:3:25;;;;-1:-1:-1;7704:19:25;;-1:-1:-1;7704:60:25;;7732:7;;;;7750:3;;;;7756:7;;7704:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7697:68;;;;:::i;:::-;7811:3;;7841:7;;7811:39;;-1:-1:-1;;;7811:39:25;;-1:-1:-1;;;;;7841:7:25;;;7811:39;;;2856:51:27;7811:3:25;;;:21;;2829:18:27;;7811:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7804:47;;;;:::i;:::-;7901:10;;7930:3;;7901:34;;-1:-1:-1;;;7901:34:25;;-1:-1:-1;;;;;7930:3:25;;;7901:34;;;2856:51:27;7892:47:25;;7901:10;;;;;:20;;2829:18:27;;7901:34:25;2710:203:27;7892:47:25;7998:3;;8020:7;;7998:31;;-1:-1:-1;;;7998:31:25;;-1:-1:-1;;;;;8020:7:25;;;7998:31;;;2856:51:27;7998:3:25;;;:13;;2829:18:27;;7998:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7991:39;;;;:::i;:::-;8083:10;;8112:3;;8083:34;;-1:-1:-1;;;8083:34:25;;-1:-1:-1;;;;;8112:3:25;;;8083:34;;;2856:51:27;8072:75:25;;8083:10;;;;;:20;;2829:18:27;;8083:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8134:3;8119:12;:7;8129:2;8119:12;:::i;:::-;:18;;;;:::i;:::-;8139:7;8072:10;:75::i;:::-;8185:13;8190:7;8185:4;:13::i;:::-;8257:3;;8279:7;;8257:31;;-1:-1:-1;;;8257:31:25;;-1:-1:-1;;;;;8279:7:25;;;8257:31;;;2856:51:27;8257:3:25;;;:13;;2829:18:27;;8257:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8250:39;;;;:::i;:::-;8342:10;;8371:3;;8342:34;;-1:-1:-1;;;8342:34:25;;-1:-1:-1;;;;;8371:3:25;;;8342:34;;;2856:51:27;8331:75:25;;8342:10;;;;;:20;;2829:18:27;;8342:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8393:3;8378:12;:7;8388:2;8378:12;:::i;8331:75::-;8444:13;8449:7;8444:4;:13::i;:::-;8516:3;;8538:7;;8516:31;;-1:-1:-1;;;8516:31:25;;-1:-1:-1;;;;;8538:7:25;;;8516:31;;;2856:51:27;8516:3:25;;;:13;;2829:18:27;;8516:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8509:39;;;;:::i;:::-;8601:10;;8630:3;;8601:34;;-1:-1:-1;;;8601:34:25;;-1:-1:-1;;;;;8630:3:25;;;8601:34;;;2856:51:27;8590:75:25;;8601:10;;;;;:20;;2829:18:27;;8601:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8652:3;8637:12;:7;8647:2;8637:12;:::i;8590:75::-;8704:14;8709:8;8704:4;:14::i;:::-;8777:3;;8799:7;;8777:31;;-1:-1:-1;;;8777:31:25;;-1:-1:-1;;;;;8799:7:25;;;8777:31;;;2856:51:27;8777:3:25;;;:13;;2829:18:27;;8777:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8770:39;;;;:::i;:::-;8862:10;;8891:3;;8862:34;;-1:-1:-1;;;8862:34:25;;-1:-1:-1;;;;;8891:3:25;;;8862:34;;;2856:51:27;8851:75:25;;8862:10;;;;;:20;;2829:18:27;;8862:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8913:3;8898:12;:7;8908:2;8898:12;:::i;8851:75::-;8965:14;8970:8;8965:4;:14::i;:::-;9038:3;;9060:7;;9038:31;;-1:-1:-1;;;9038:31:25;;-1:-1:-1;;;;;9060:7:25;;;9038:31;;;2856:51:27;9038:3:25;;;:13;;2829:18:27;;9038:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9031:39;;;;:::i;:::-;9121:10;;9150:3;;9121:34;;-1:-1:-1;;;9121:34:25;;-1:-1:-1;;;;;9150:3:25;;;9121:34;;;2856:51:27;9112:53:25;;9121:10;;;;;:20;;2829:18:27;;9121:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9157:7;9112:8;:53::i;:::-;317:28:1;309:37;;-1:-1:-1;;;;;9178:12:25;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7321:1879;:::o;4740:583:26:-;4829:12;4852:4;4845;:11;:39;;4873:11;4880:4;4873;:11;:::i;:::-;4845:39;;;4859:11;4866:4;4859;:11;:::i;:::-;4829:55;;4899:4;4907:1;4899:9;4895:22;;4910:7;4740:583;;;:::o;4895:22::-;4929:19;4951:9;;:23;;4970:4;4951:23;;;4963:4;4951:23;4929:45;-1:-1:-1;4985:10:26;5036:14;5042:8;5036:2;:14;:::i;:::-;5030:20;;2539:8;5030:20;:::i;:::-;5014:11;5000:10;2539:8;5000:4;:10;:::i;:::-;4999:26;;;;:::i;:::-;4998:53;4985:66;;5069:5;5064:252;;5095:80;;;7820:21:27;;;7877:2;7857:18;;;7850:30;7916:34;7911:2;7896:18;;7889:62;-1:-1:-1;;;7982:3:27;7967:19;;7960:51;8078:4;8063:20;;8056:36;;;5095:80:26;;-1:-1:-1;;;;;;;;;;;5095:80:26;;;;8043:3:27;5095:80:26;;;-1:-1:-1;;;;;;;;;;;5224:4:26;5195:34;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5278:4:26;5249:34;;;;;;:::i;:::-;;;;;;;;5298:6;:4;:6::i;:::-;4818:505;;;4740:583;;;:::o;5374:479::-;5462:18;5490:4;5483;:11;:39;;5511:11;5518:4;5511;:11;:::i;:::-;5483:39;;;5497:11;5504:4;5497;:11;:::i;:::-;5462:60;-1:-1:-1;5546:26:26;;;;;5585:261;;5617:88;;;9349:21:27;;;9406:2;9386:18;;;9379:30;9445:34;9440:2;9425:18;;9418:62;9517:26;9511:3;9496:19;;9489:55;9611:4;9596:20;;9589:36;;;5617:88:26;;-1:-1:-1;;;;;;;;;;;5617:88:26;;;;9576:3:27;5617:88:26;;;-1:-1:-1;;;;;;;;;;;5754:4:26;5725:34;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5808:4:26;5779:34;;;;;;:::i;:::-;;;;;;;;5828:6;:4;:6::i;2283:1126:25:-;2452:10;;2480:7;;2452:46;;-1:-1:-1;;;2452:46:25;;-1:-1:-1;;;;;2480:7:25;;;2452:46;;;2355:51:27;2370:15:25;2422:18:27;;;2415:34;;;2370:15:25;2452:10;;;;;:19;;2328:18:27;;2452:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2568:3:25;;2546:27;;-1:-1:-1;;;2546:27:25;;-1:-1:-1;;;;;2568:3:25;;;2546:27;;;2856:51:27;2546:13:25;;;;2829:18:27;;2546:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2639:77:25;;-1:-1:-1;;;2639:77:25;;9837:2:27;2639:77:25;;;9819:21:27;9876:2;9856:18;;;9849:30;9915:34;9895:18;;;9888:62;9986:28;9966:18;;;9959:56;2639:15:25;;-1:-1:-1;2639:15:25;;-1:-1:-1;10032:19:27;;2639:77:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2727:7;;;;;;;;;-1:-1:-1;;;;;2727:7:25;-1:-1:-1;;;;;2727:13:25;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2794:3:25;;2822:7;;2840:3;;2794:68;;-1:-1:-1;;;2794:68:25;;-1:-1:-1;;;;;2794:3:25;;;;-1:-1:-1;2794:19:25;;-1:-1:-1;2794:68:25;;2822:7;;;;2840:3;;;;2846:15;;2794:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2787:76;;;;:::i;:::-;2929:62;;-1:-1:-1;;;2929:62:25;;10263:2:27;2929:62:25;;;10245:21:27;10302:2;10282:18;;;10275:30;10341:34;10321:18;;;10314:62;-1:-1:-1;;;10392:18:27;;;10385:41;2929:15:25;;;;10443:19:27;;2929:62:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3002:7;;;;;;;;;-1:-1:-1;;;;;3002:7:25;-1:-1:-1;;;;;3002:13:25;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3064:3:25;;3094:7;;3064:39;;-1:-1:-1;;;3064:39:25;;-1:-1:-1;;;;;3094:7:25;;;3064:39;;;2856:51:27;3064:3:25;;;-1:-1:-1;3064:21:25;;-1:-1:-1;2829:18:27;;3064:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3057:47;;;;:::i;:::-;3154:7;;;;;;;;;-1:-1:-1;;;;;3154:7:25;-1:-1:-1;;;;;3154:13:25;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3182:14;3187:8;3182:4;:14::i;:::-;3247:7;;;;;;;;;-1:-1:-1;;;;;3247:7:25;-1:-1:-1;;;;;3247:13:25;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3275:71:25;;-1:-1:-1;;;3275:71:25;;10674:2:27;3275:71:25;;;10656:21:27;10713:2;10693:18;;;10686:30;10752:34;10732:18;;;10725:62;-1:-1:-1;;;10803:18:27;;;10796:50;3275:15:25;;-1:-1:-1;3275:15:25;;-1:-1:-1;10863:19:27;;3275:71:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3357:7;;;;;;;;;-1:-1:-1;;;;;3357:7:25;-1:-1:-1;;;;;3357:13:25;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:1;309:37;;-1:-1:-1;;;;;3385:12:25;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6028:291:26;6128:7;6157:8;;:20;;;;;6170:7;6169:8;6157:20;6148:163;;;-1:-1:-1;6186:1:26;6179:8;;6148:163;6214:3;6207;:10;6203:108;;-1:-1:-1;6236:3:26;6229:10;;6203:108;6308:3;6295:9;6308:3;6295;:9;:::i;:::-;6288:17;;:3;:17;:::i;:::-;:23;;;;:::i;:::-;6281:30;;6203:108;6028:291;;;;;;:::o;4221:461::-;4299:12;4314:14;;;:6;:14;;;;;;;;:19;;;4360;;;;4404:31;;-1:-1:-1;;;4404:31:26;;-1:-1:-1;;;;;2874:32:27;;;4404:31:26;;;2856:51:27;;;;4314:19:26;;;4360;;4314;;4404:22;;2829:18:27;;4404:31:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4448:4;;4502:25;;;-1:-1:-1;;;;;2373:32:27;;;4502:25:26;;;2355:51:27;2422:18;;;2415:34;;;4390:45:26;;-1:-1:-1;4448:4:26;;;;;;:10;;4473:4;;2328:18:27;;4502:25:26;;;;;;;;;;;;4492:36;;;;;;4572:3;4566;:9;;;;:::i;:::-;4448:139;;;;;;-1:-1:-1;;;;;;4448:139:26;;;-1:-1:-1;;;;;11360:32:27;;;4448:139:26;;;11342:51:27;11409:18;;;11402:34;;;;11452:18;;;11445:34;11315:18;;4448:139:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4609:31:26;;-1:-1:-1;;;4609:31:26;;-1:-1:-1;;;;;2874:32:27;;;4609:31:26;;;2856:51:27;4600:52:26;;-1:-1:-1;4609:22:26;;;-1:-1:-1;4609:22:26;;2829:18:27;;4609:31:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4642:9;4648:3;4642;:9;:::i;:::-;4600:8;:52::i;9264:2022:25:-;9357:48;9363:7;9372:13;9387:17;9357:5;:48::i;:::-;9476:10;;9504:7;;9347:58;;-1:-1:-1;;;;;;9476:10:25;;;;:19;;9504:7;9514:9;9347:58;9522:1;9514:9;:::i;:::-;9476:48;;-1:-1:-1;;;;;;9476:48:25;;;;;;;-1:-1:-1;;;;;2373:32:27;;;9476:48:25;;;2355:51:27;2422:18;;;2415:34;2328:18;;9476:48:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9570:3:25;;9600:7;;9570:39;;-1:-1:-1;;;9570:39:25;;-1:-1:-1;;;;;9600:7:25;;;9570:39;;;2856:51:27;9570:3:25;;;:21;;2829:18:27;;9570:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9563:47;;;;:::i;:::-;9719:3;;9747:7;;9765:3;;9719:60;;-1:-1:-1;;;9719:60:25;;-1:-1:-1;;;;;9719:3:25;;;;:19;;:60;;9747:7;;;;9765:3;;;9771:7;;9719:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9712:68;;;;:::i;:::-;9832:3;;9860:7;;9832:3;9878;9832:60;;-1:-1:-1;;;9832:60:25;;-1:-1:-1;;;;;9832:3:25;;;;:19;;:60;;9860:7;;;;9878:3;;;9884:7;;9832:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9825:68;;;;:::i;:::-;9945:3;;9973:7;;9945:60;;-1:-1:-1;;;9945:60:25;;-1:-1:-1;;;;;9945:3:25;;;;:19;;:60;;9973:7;;;9945:3;;9997:7;;9945:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9938:68;;;;:::i;:::-;10081:13;10086:7;10081:4;:13::i;:::-;10112:3;;10134:7;;10112:31;;-1:-1:-1;;;10112:31:25;;-1:-1:-1;;;;;10134:7:25;;;10112:31;;;2856:51:27;10112:3:25;;;:13;;2829:18:27;;10112:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10105:39;;;;:::i;:::-;10232:10;;10261:3;;10232:34;;-1:-1:-1;;;10232:34:25;;-1:-1:-1;;;;;10261:3:25;;;10232:34;;;2856:51:27;10221:77:25;;10232:10;;;;;:20;;2829:18:27;;10232:34:25;2710:203:27;10221:77:25;10363:14;10368:8;10363:4;:14::i;:::-;10449:3;;10471:7;;10449:31;;-1:-1:-1;;;10449:31:25;;-1:-1:-1;;;;;10471:7:25;;;10449:31;;;2856:51:27;10449:3:25;;;:13;;2829:18:27;;10449:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10442:39;;;;:::i;:::-;10569:10;;;10598:3;10569:34;;-1:-1:-1;;;10569:34:25;;-1:-1:-1;;;;;10598:3:25;;;10569:34;;;2856:51:27;10558:77:25;;10569:10;;;;;:20;;2829:18:27;;10569:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10621:3;10606:12;:7;10616:2;10606:12;:::i;10558:77::-;10701:14;10706:8;10701:4;:14::i;:::-;10813:3;;10835:7;;10813:31;;-1:-1:-1;;;10813:31:25;;-1:-1:-1;;;;;10835:7:25;;;10813:31;;;2856:51:27;10813:3:25;;;:13;;2829:18:27;;10813:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10806:39;;;;:::i;:::-;10920:10;;;10949:3;10920:34;;-1:-1:-1;;;10920:34:25;;-1:-1:-1;;;;;10949:3:25;;;10920:34;;;2856:51:27;10911:53:25;;10920:10;;;;;:20;;2829:18:27;;10920:34:25;2710:203:27;10911:53:25;11009:14;11014:8;11009:4;:14::i;:::-;11117:3;;11139:7;;11117:31;;-1:-1:-1;;;11117:31:25;;-1:-1:-1;;;;;11139:7:25;;;11117:31;;;2856:51:27;11117:3:25;;;:13;;2829:18:27;;11117:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11110:39;;;;:::i;:::-;11232:10;;11261:3;;11232:34;;-1:-1:-1;;;11232:34:25;;-1:-1:-1;;;;;11261:3:25;;;11232:34;;;2856:51:27;11223:53:25;;11232:10;;;;;:20;;2829:18:27;;11232:34:25;2710:203:27;3462:1782:25;3618:10;;3646:7;;3618:46;;-1:-1:-1;;;3618:46:25;;-1:-1:-1;;;;;3646:7:25;;;3618:46;;;2355:51:27;3536:15:25;2422:18:27;;;2415:34;;;3536:15:25;3618:10;;;;;:19;;2328:18:27;;3618:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3734:3:25;;3712:27;;-1:-1:-1;;;3712:27:25;;-1:-1:-1;;;;;3734:3:25;;;3712:27;;;2856:51:27;3712:13:25;;;;2829:18:27;;3712:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3791:3:25;;3819:7;;3837:3;;3791:60;;-1:-1:-1;;;3791:60:25;;-1:-1:-1;;;;;3791:3:25;;;;-1:-1:-1;3791:19:25;;-1:-1:-1;3791:60:25;;3819:7;;;;3837:3;;;;3843:7;;3791:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3784:68;;;;:::i;:::-;3899:3;;3929:7;;3899:39;;-1:-1:-1;;;3899:39:25;;-1:-1:-1;;;;;3929:7:25;;;3899:39;;;2856:51:27;3899:3:25;;;:21;;2829:18:27;;3899:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3892:47;;;;:::i;:::-;3989:10;;4018:3;;3989:34;;-1:-1:-1;;;3989:34:25;;-1:-1:-1;;;;;4018:3:25;;;3989:34;;;2856:51:27;3980:47:25;;3989:10;;;;;:20;;2829:18:27;;3989:34:25;2710:203:27;3980:47:25;4086:3;;4108:7;;4086:31;;-1:-1:-1;;;4086:31:25;;-1:-1:-1;;;;;4108:7:25;;;4086:31;;;2856:51:27;4086:3:25;;;:13;;2829:18:27;;4086:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4079:39;;;;:::i;:::-;4169:10;;4198:3;;4169:34;;-1:-1:-1;;;4169:34:25;;-1:-1:-1;;;;;4198:3:25;;;4169:34;;;2856:51:27;4160:64:25;;4169:10;;;;;:20;;2829:18:27;;4169:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4220:3;4205:12;:7;4215:2;4205:12;:::i;:::-;:18;;;;:::i;4160:64::-;4262:13;4267:7;4262:4;:13::i;:::-;4334:3;;4356:7;;4334:31;;-1:-1:-1;;;4334:31:25;;-1:-1:-1;;;;;4356:7:25;;;4334:31;;;2856:51:27;4334:3:25;;;:13;;2829:18:27;;4334:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4327:39;;;;:::i;:::-;4417:10;;4446:3;;4417:34;;-1:-1:-1;;;4417:34:25;;-1:-1:-1;;;;;4446:3:25;;;4417:34;;;2856:51:27;4408:64:25;;4417:10;;;;;:20;;2829:18:27;;4417:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4468:3;4453:12;:7;4463:2;4453:12;:::i;4408:64::-;4510:13;4515:7;4510:4;:13::i;:::-;4582:3;;4604:7;;4582:31;;-1:-1:-1;;;4582:31:25;;-1:-1:-1;;;;;4604:7:25;;;4582:31;;;2856:51:27;4582:3:25;;;:13;;2829:18:27;;4582:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4575:39;;;;:::i;:::-;4665:10;;4694:3;;4665:34;;-1:-1:-1;;;4665:34:25;;-1:-1:-1;;;;;4694:3:25;;;4665:34;;;2856:51:27;4656:64:25;;4665:10;;;;;:20;;2829:18:27;;4665:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4716:3;4701:12;:7;4711:2;4701:12;:::i;4656:64::-;4759:14;4764:8;4759:4;:14::i;:::-;4832:3;;4854:7;;4832:31;;-1:-1:-1;;;4832:31:25;;-1:-1:-1;;;;;4854:7:25;;;4832:31;;;2856:51:27;4832:3:25;;;:13;;2829:18:27;;4832:31:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4825:39;;;;:::i;:::-;4915:10;;4944:3;;4915:34;;-1:-1:-1;;;4915:34:25;;-1:-1:-1;;;;;4944:3:25;;;4915:34;;;2856:51:27;4906:64:25;;4915:10;;;;;:20;;2829:18:27;;4915:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4966:3;4951:12;:7;4961:2;4951:12;:::i;3312:184:26:-;3360:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3354:3:26;:17;;-1:-1:-1;;;;;;3354:17:26;-1:-1:-1;;;;;3354:17:26;;;;;;;;;;3401:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3395:3:26;:17;;-1:-1:-1;;;;;;3395:17:26;-1:-1:-1;;;;;3395:17:26;;;;;;;;;;3468:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3462:3:26;:17;;-1:-1:-1;;;;;;3462:17:26;-1:-1:-1;;;;;3462:17:26;;;;;;;;;;3312:184::o;1819:584:0:-;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;2990:42;2978:55;3059:16;1980:374;;2196:43;;;1671:64;2196:43;;;2355:51:27;;;-1:-1:-1;;;2422:18:27;;;2415:34;2196:43:0;;;;;;;;;2328:18:27;;;2196:43:0;;;-1:-1:-1;;1671:64:0;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;5861:159:26:-;5947:7;5974:38;5991:3;5996;6001;6006:5;5974:16;:38::i;:::-;5967:45;;5861:159;;;;;;:::o;3620:551::-;3663:6;:14;;;:26;;-1:-1:-1;;;;;;3663:26:26;;;840:42;3663:26;;;;3722:1;3700:19;:23;3736:13;:24;;;;914:42;3736:24;;;3792:1;3771:18;:22;3804:18;:63;;;;3825:42;3804:63;;;3880:14;:26;;;;988:42;3880:26;;;3939:1;3917:19;:23;3951:19;:64;;;;3973:42;3951:64;;;-1:-1:-1;;;3663:14:26;4028;;;;:26;;;;1062:42;4028:26;;;4065:19;:23;4099:19;:64;;;;;4121:42;4099:64;;;3620:551::o;17530:93:4:-;17585:7;;17593:22;17611:4;17593:15;:22;:::i;:::-;17585:31;;;;;;;;;;;;;1429:25:27;;1417:2;1402:18;;1283:177;17585:31:4;;;;;;;;;;;;;;;;;;;;5202:262:0;5264:1;5259;:6;5255:203;;5286:41;;;;;12907:2:27;12889:21;;;12946:2;12926:18;;;12919:30;12985:34;12980:2;12965:18;;12958:62;-1:-1:-1;;;13051:2:27;13036:18;;13029:32;13093:3;13078:19;;12705:398;5286:41:0;;;;;;;;-1:-1:-1;;;;;;;;;;;5375:1:0;5346:31;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5425:1:0;5396:31;;;;;;:::i;:::-;;;;;;;;5441:6;:4;:6::i;:::-;5202:262;;:::o;3615:277::-;3683:1;-1:-1:-1;;;;;3678:6:0;:1;-1:-1:-1;;;;;3678:6:0;;3674:212;;3705:44;;;;;13310:2:27;13292:21;;;13349:2;13329:18;;;13322:30;13388:34;13383:2;13368:18;;13361:62;-1:-1:-1;;;13454:2:27;13439:18;;13432:35;13499:3;13484:19;;13108:401;3705:44:0;;;;;;;;3768:34;3800:1;3768:34;;;;;;:::i;:::-;;;;;;;;3821;3853:1;3821:34;;;;;;:::i;789:312:2:-;859:1;854:6;;:1;:6;;;850:245;;881:41;;;;;14474:2:27;14456:21;;;14513:2;14493:18;;;14486:30;14552:34;14547:2;14532:18;;14525:62;-1:-1:-1;;;14618:2:27;14603:18;;14596:32;14660:3;14645:19;;14272:398;881:41:2;;;;;;;;941:52;972:1;:20;;;;;;;;;;;;;;;-1:-1:-1;;;972:20:2;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;972:20:2;;;;941:52;;;;;;:::i;:::-;;;;;;;;1012;1043:1;:20;;;;;;;;;;;;;;;-1:-1:-1;;;1043:20:2;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1043:20:2;;;;1012:52;;;;;;:::i;1880:190:9:-;1963:14;1998:19;2005:1;2008:3;2013;1998:6;:19::i;:::-;1989:28;;2027:36;;;;;;;;;;;;;;-1:-1:-1;;;2027:36:9;;;2056:6;2027:12;:36::i;2410:424:0:-;2990:42;2978:55;3059:16;2445:359;;2645:67;;;1671:64;2645:67;;;11342:51:27;;;-1:-1:-1;;;11409:18:27;;;11402:34;;;;2705:4:0;11452:18:27;;;11445:34;2482:11:0;;1671:64;2579:43;;11315:18:27;;2645:67:0;;;-1:-1:-1;;2645:67:0;;;;;;;;;;2534:196;;;2645:67;2534:196;;:::i;:::-;;;;-1:-1:-1;;2534:196:0;;;;;;;;;;2499:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2445:359:0;2813:7;:14;;-1:-1:-1;;2813:14:0;;;;;2410:424::o;611:1263:9:-;695:14;736:3;729;:10;;721:85;;;;-1:-1:-1;;;721:85:9;;16043:2:27;721:85:9;;;16025:21:27;16082:2;16062:18;;;16055:30;16121:34;16101:18;;;16094:62;16192:32;16172:18;;;16165:60;16242:19;;721:85:9;;;;;;;;1040:3;1035:1;:8;;:20;;;;;1052:3;1047:1;:8;;1035:20;1031:34;;;-1:-1:-1;1064:1:9;1057:8;;1031:34;1076:12;1091:9;1097:3;1091;:9;:::i;:::-;:13;;1103:1;1091:13;:::i;:::-;1076:28;;1299:1;1294;:6;;:18;;;;;1311:1;1304:4;:8;1294:18;1290:38;;;1321:7;1327:1;1321:3;:7;:::i;:::-;1314:14;;;;;1290:38;1347:15;1361:1;-1:-1:-1;;1347:15:9;:::i;:::-;1342:1;:20;;:46;;;;-1:-1:-1;1373:15:9;1387:1;-1:-1:-1;;1373:15:9;:::i;:::-;1366:4;:22;1342:46;1338:82;;;1404:15;1418:1;-1:-1:-1;;1404:15:9;:::i;:::-;1397:23;;:3;:23;:::i;1338:82::-;1524:3;1520:1;:7;1516:352;;;1543:12;1558:7;1562:3;1558:1;:7;:::i;:::-;1543:22;-1:-1:-1;1579:11:9;1593;1600:4;1543:22;1593:11;:::i;:::-;1579:25;;1622:3;1629:1;1622:8;1618:24;;1639:3;1632:10;;;;;;;1618:24;1677:1;1665:9;1671:3;1665;:9;:::i;:::-;:13;;;;:::i;:::-;1656:22;;1529:160;;1516:352;;;1703:3;1699:1;:7;1695:173;;;1722:12;1737:7;1743:1;1737:3;:7;:::i;:::-;1722:22;-1:-1:-1;1758:11:9;1772;1779:4;1722:22;1772:11;:::i;:::-;1758:25;;1801:3;1808:1;1801:8;1797:24;;1818:3;1811:10;;;;;;;1797:24;1844:9;1850:3;1844;:9;:::i;:::-;:13;;1856:1;1844:13;:::i;:::-;1835:22;;1708:160;;1695:173;711:1163;611:1263;;;;;:::o;6307:207::-;6383:11;297:42;-1:-1:-1;;;;;6399:36:9;6483:2;6487;6436:54;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6436:54:9;;;;;;;;;;;;;;-1:-1:-1;;;;;6436:54:9;-1:-1:-1;;;6436:54:9;;;6399:92;;;6436:54;6399:92;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;203:180:27:-;262:6;315:2;303:9;294:7;290:23;286:32;283:52;;;331:1;328;321:12;283:52;-1:-1:-1;354:23:27;;203:180;-1:-1:-1;203:180:27:o;388:316::-;465:6;473;481;534:2;522:9;513:7;509:23;505:32;502:52;;;550:1;547;540:12;502:52;-1:-1:-1;;573:23:27;;;643:2;628:18;;615:32;;-1:-1:-1;694:2:27;679:18;;;666:32;;388:316;-1:-1:-1;388:316:27:o;709:118::-;795:5;788:13;781:21;774:5;771:32;761:60;;817:1;814;807:12;832:446;915:6;923;931;939;992:3;980:9;971:7;967:23;963:33;960:53;;;1009:1;1006;999:12;960:53;1045:9;1032:23;1022:33;;1102:2;1091:9;1087:18;1074:32;1064:42;;1153:2;1142:9;1138:18;1125:32;1115:42;;1207:2;1196:9;1192:18;1179:32;1220:28;1242:5;1220:28;:::i;:::-;832:446;;;;-1:-1:-1;832:446:27;;-1:-1:-1;;832:446:27:o;1465:131::-;-1:-1:-1;;;;;1540:31:27;;1530:42;;1520:70;;1586:1;1583;1576:12;1601:383;1678:6;1686;1694;1747:2;1735:9;1726:7;1722:23;1718:32;1715:52;;;1763:1;1760;1753:12;1715:52;1799:9;1786:23;1776:33;;1859:2;1848:9;1844:18;1831:32;1872:31;1897:5;1872:31;:::i;:::-;1601:383;;1922:5;;-1:-1:-1;;;1974:2:27;1959:18;;;;1946:32;;1601:383::o;2460:245::-;2527:6;2580:2;2568:9;2559:7;2555:23;2551:32;2548:52;;;2596:1;2593;2586:12;2548:52;2628:9;2622:16;2647:28;2669:5;2647:28;:::i;2918:127::-;2979:10;2974:3;2970:20;2967:1;2960:31;3010:4;3007:1;3000:15;3034:4;3031:1;3024:15;3050:407;-1:-1:-1;;;;;3340:15:27;;;3322:34;;3392:15;;;;3387:2;3372:18;;3365:43;3439:2;3424:18;;3417:34;;;;3272:2;3257:18;;3050:407::o;3462:184::-;3532:6;3585:2;3573:9;3564:7;3560:23;3556:32;3553:52;;;3601:1;3598;3591:12;3553:52;-1:-1:-1;3624:16:27;;3462:184;-1:-1:-1;3462:184:27:o;3651:251::-;3721:6;3774:2;3762:9;3753:7;3749:23;3745:32;3742:52;;;3790:1;3787;3780:12;3742:52;3822:9;3816:16;3841:31;3866:5;3841:31;:::i;5539:127::-;5600:10;5595:3;5591:20;5588:1;5581:31;5631:4;5628:1;5621:15;5655:4;5652:1;5645:15;5671:168;5744:9;;;5775;;5792:15;;;5786:22;;5772:37;5762:71;;5813:18;;:::i;:::-;5671:168;;;;:::o;5844:127::-;5905:10;5900:3;5896:20;5893:1;5886:31;5936:4;5933:1;5926:15;5960:4;5957:1;5950:15;5976:120;6016:1;6042;6032:35;;6047:18;;:::i;:::-;-1:-1:-1;6081:9:27;;5976:120::o;6101:128::-;6168:9;;;6189:11;;;6186:37;;;6203:18;;:::i;6234:422::-;6323:1;6366:5;6323:1;6380:270;6401:7;6391:8;6388:21;6380:270;;;6460:4;6456:1;6452:6;6448:17;6442:4;6439:27;6436:53;;;6469:18;;:::i;:::-;6519:7;6509:8;6505:22;6502:55;;;6539:16;;;;6502:55;6618:22;;;;6578:15;;;;6380:270;;;6384:3;6234:422;;;;;:::o;6661:806::-;6710:5;6740:8;6730:80;;-1:-1:-1;6781:1:27;6795:5;;6730:80;6829:4;6819:76;;-1:-1:-1;6866:1:27;6880:5;;6819:76;6911:4;6929:1;6924:59;;;;6997:1;6992:130;;;;6904:218;;6924:59;6954:1;6945:10;;6968:5;;;6992:130;7029:3;7019:8;7016:17;7013:43;;;7036:18;;:::i;:::-;-1:-1:-1;;7092:1:27;7078:16;;7107:5;;6904:218;;7206:2;7196:8;7193:16;7187:3;7181:4;7178:13;7174:36;7168:2;7158:8;7155:16;7150:2;7144:4;7141:12;7137:35;7134:77;7131:159;;;-1:-1:-1;7243:19:27;;;7275:5;;7131:159;7322:34;7347:8;7341:4;7322:34;:::i;:::-;7392:6;7388:1;7384:6;7380:19;7371:7;7368:32;7365:58;;;7403:18;;:::i;:::-;7441:20;;6661:806;-1:-1:-1;;;6661:806:27:o;7472:131::-;7532:5;7561:36;7588:8;7582:4;7561:36;:::i;8267:348::-;8497:2;8486:9;8479:21;8460:4;8517:49;8562:2;8551:9;8547:18;8180:2;8168:15;;-1:-1:-1;;;8208:4:27;8199:14;;8192:36;8253:2;8244:12;;8103:159;8517:49;8509:57;;8602:6;8597:2;8586:9;8582:18;8575:34;8267:348;;;;:::o;8784:::-;9014:2;9003:9;8996:21;8977:4;9034:49;9079:2;9068:9;9064:18;8697:2;8685:15;;-1:-1:-1;;;8725:4:27;8716:14;;8709:36;8770:2;8761:12;;8620:159;10893:112;10925:1;10951;10941:35;;10956:18;;:::i;:::-;-1:-1:-1;10990:9:27;;10893:112::o;11010:125::-;11075:9;;;11096:10;;;11093:36;;;11109:18;;:::i;11769:250::-;11854:1;11864:113;11878:6;11875:1;11872:13;11864:113;;;11954:11;;;11948:18;11935:11;;;11928:39;11900:2;11893:10;11864:113;;;-1:-1:-1;;12011:1:27;11993:16;;11986:27;11769:250::o;12024:384::-;-1:-1:-1;;;;;;12209:33:27;;12197:46;;12266:13;;12179:3;;12288:74;12266:13;12351:1;12342:11;;12335:4;12323:17;;12288:74;:::i;:::-;12382:16;;;;12400:1;12378:24;;12024:384;-1:-1:-1;;;12024:384:27:o;12413:287::-;12542:3;12580:6;12574:13;12596:66;12655:6;12650:3;12643:4;12635:6;12631:17;12596:66;:::i;:::-;12678:16;;;;;12413:287;-1:-1:-1;;12413:287:27:o;13514:374::-;13744:2;13733:9;13726:21;13707:4;13764:49;13809:2;13798:9;13794:18;8180:2;8168:15;;-1:-1:-1;;;8208:4:27;8199:14;;8192:36;8253:2;8244:12;;8103:159;13764:49;-1:-1:-1;;;;;13849:32:27;;;;13844:2;13829:18;;;;13822:60;;;;-1:-1:-1;13756:57:27;13514:374::o;13893:::-;14123:2;14112:9;14105:21;14086:4;14143:49;14188:2;14177:9;14173:18;8697:2;8685:15;;-1:-1:-1;;;8725:4:27;8716:14;;8709:36;8770:2;8761:12;;8620:159;14675:271;14717:3;14755:5;14749:12;14782:6;14777:3;14770:19;14798:76;14867:6;14860:4;14855:3;14851:14;14844:4;14837:5;14833:16;14798:76;:::i;:::-;14928:2;14907:15;-1:-1:-1;;14903:29:27;14894:39;;;;14935:4;14890:50;;14675:271;-1:-1:-1;;14675:271:27:o;14951:440::-;15201:2;15190:9;15183:21;15164:4;15227:49;15272:2;15261:9;15257:18;8180:2;8168:15;;-1:-1:-1;;;8208:4:27;8199:14;;8192:36;8253:2;8244:12;;8103:159;15227:49;15324:9;15316:6;15312:22;15307:2;15296:9;15292:18;15285:50;15352:33;15378:6;15370;15352:33;:::i;15396:440::-;15646:2;15635:9;15628:21;15609:4;15672:49;15717:2;15706:9;15702:18;8697:2;8685:15;;-1:-1:-1;;;8725:4:27;8716:14;;8709:36;8770:2;8761:12;;8620:159;16272:291;16449:2;16438:9;16431:21;16412:4;16469:45;16510:2;16499:9;16495:18;16487:6;16469:45;:::i;:::-;16461:53;;16550:6;16545:2;16534:9;16530:18;16523:34;16272:291;;;;;:::o", + "linkReferences": {} + }, + "methodIdentifiers": { + "CL_FACTORY()": "e70dd6cf", + "DL_FACTORY()": "174a5be4", + "FL_FACTORY()": "38505fb0", + "INTEREST_CALC_TYPE()": "8c38922f", + "IS_TEST()": "fa7626d4", + "LATEFEE_CALC_TYPE()": "3493f4ca", + "LL_FACTORY()": "c5ba73ed", + "PREMIUM_CALC_TYPE()": "7a8fe3c0", + "SL_FACTORY()": "9f71f14a", + "constrictToRange(uint256,uint256,uint256)": "c060c5f3", + "constrictToRange(uint256,uint256,uint256,bool)": "6c676a60", + "createActors()": "b967b5a7", + "failed()": "ba414fa6", + "mint(bytes32,address,uint256)": "7ed9db59", + "setUp()": "0a9254e4", + "setUpTokens()": "eea96210", + "test_mainDeploymentTest_claim()": "b8dae58b", + "test_mainDeploymentTest_claim_edge_cases()": "04740900", + "test_mainDeploymentTest_claim_fuzzing1(uint256)": "1afcfe22", + "test_mainDeploymentTest_claim_fuzzing2(uint256)": "86ef399b", + "test_mainDeploymentTest_claim_restrictions()": "6686e154", + "test_mainDeploymentTest_init_state()": "0a831a15", + "withinDiff(uint256,uint256,uint256)": "344b1478", + "withinPrecision(uint256,uint256,uint256)": "30f7c5c3" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INTEREST_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LATEFEE_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PREMIUM_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"nonZero\",\"type\":\"bool\"}],\"name\":\"constrictToRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"constrictToRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createActors\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"symbol\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUpTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_mainDeploymentTest_claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_mainDeploymentTest_claim_edge_cases\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"test_mainDeploymentTest_claim_fuzzing1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"test_mainDeploymentTest_claim_fuzzing2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_mainDeploymentTest_claim_restrictions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_mainDeploymentTest_init_state\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"val1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedDiff\",\"type\":\"uint256\"}],\"name\":\"withinDiff\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"val1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accuracy\",\"type\":\"uint256\"}],\"name\":\"withinPrecision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"test_mainDeploymentTest_claim()\":{\"details\":\"Verifies claim() state changes\"},\"test_mainDeploymentTest_claim_edge_cases()\":{\"details\":\"Verifies claim() edge cases\"},\"test_mainDeploymentTest_claim_fuzzing1(uint256)\":{\"details\":\"Verifies claim() state changes using fuzzing\"},\"test_mainDeploymentTest_claim_fuzzing2(uint256)\":{\"details\":\"Verifies claim() edge cases using fuzzing\"},\"test_mainDeploymentTest_claim_restrictions()\":{\"details\":\"Verifies claim() restrictions\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/MainDeployment.t.sol\":\"MainDeploymentTest\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xcf17bed19a42d40b15e584cfc57b1cef2b2b0e55d812f6740afe2c5c4bf801d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78e8f19f8b8b6107a39d892d073cfeb8872cce4d5c8e7957d29941e092e16fea\",\"dweb:/ipfs/QmYQfx7UYDjSx77d8WmbveFkXK6AyrUfYUdxvufGLbVPSm\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xe4913fabc9dbebe2ebb4ba4eaf629380a71b88b255fabc05492990bfa3b185bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1989ae3326aafbbf80f75036869d5ea3c752614dfce7df17ce0912a7a16dbb7\",\"dweb:/ipfs/QmSQju3J4cHLZeVsnWk53it94W2N243mvbyx42hhV5BxED\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"src/TaxToken.sol\":{\"keccak256\":\"0x8027c905e28f0b030a25b3c0fb16c9bd2e100ba07029be13c815977da0a8f014\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8934f9517322735c1bff0c0c5fc963460ee10fb61cc3482c77d2232a0104ebda\",\"dweb:/ipfs/Qmf6mrb3BE4dAnvLZpneafJbHRJkGTDrRQAc8gtfVjijx6\"]},\"src/Treasury.sol\":{\"keccak256\":\"0x27460b541b6369e633da21ef4570c204040a4cc0d40e95e78c269848f89b733b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e77dd6b109beb9728caf6156ea891e7e02d3167287658260bc3fef57b25699a\",\"dweb:/ipfs/QmaZRGiSa4S83tHN9HKDZe1DpgLEyAYZYdU9X3tpGPwCQT\"]},\"src/Vesting.sol\":{\"keccak256\":\"0x3fb59f7d29ccc67ec5aa7b9c064b73734c50c7a68a5f4cac138df7922dfc3356\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0fc8b6e747264c821ede1849cc1c257d97de3006a78b5de396a3837d81377907\",\"dweb:/ipfs/QmU4HUzVvgQGUSS2vknorfoLMvfqvz1F5Whr4mW9x46w7w\"]},\"src/extensions/Context.sol\":{\"keccak256\":\"0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12\",\"dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV\"]},\"src/extensions/Ownable.sol\":{\"keccak256\":\"0xbe3f4ae2a873ee339e0ac54107262ee789604570a463549fd43364289769207f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca9dde5e484d808440ff8ac43892b8f59a2b76d5084efce1dfa904d800c0f9c6\",\"dweb:/ipfs/QmRnQ2x3a9GwVKf7wbRhNY1MwdxyoTkvDtLFqjXxhEoALA\"]},\"src/interfaces/ERC20.sol\":{\"keccak256\":\"0x66faf9d1ffb72b9815ca0361cc51dcee221d71bf77d1fbc333764ec45ba4625d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b8e9fa1d14f1f05c268ea595f8f17b6e7a600b050ca5b28b18cce98a18500bd\",\"dweb:/ipfs/Qmdi66SsYxDycpGFRtJZ2eJy5znGp6JKwGsHd4BEkWswka\"]},\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be\",\"dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA\"]},\"src/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xc47e18780475626ac1da1437417e84442c2328eaa2726669bd4d84d46f64f275\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d0b18cef7206904c41fff4113a98513828cb5e393de57a6b6330dd1010498606\",\"dweb:/ipfs/QmRCyXnd2bvUyK39TAX9ddm7Ra7hWdMB7b2tqZeytnDyFm\"]},\"src/interfaces/IUniswapV2Router.sol\":{\"keccak256\":\"0xd6f5421763c422b31d0d448ddb3406628b7119a0230d05c82ac932816374f4e4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0413b1f197957edd78b044d2342ef527c18f768d678967a085a4820b4b6e1cee\",\"dweb:/ipfs/QmTekfGmFArRoMM2HQ5hrqxqsDMfahfVa7tc7ddYk7EsD5\"]},\"src/interfaces/InterfacesAggregated.sol\":{\"keccak256\":\"0xd5e582438e596ce5ce33c207884e973a7b8717212aa9fd21909b8b2d9c467095\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://86a732fe5eb860bed3fc631feb767e2b3145f510c082e64dd062e9b2fca66128\",\"dweb:/ipfs/QmcrieewKPRseM8yyGH529sYqb5A4RGDoZsg5F9tDnnnmr\"]},\"src/users/Actor.sol\":{\"keccak256\":\"0x6ad8911c2d305f1bac636ad070f00e47cb2912c78883ea24698030b41a39ccd3\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://917f42c979b5f2c9bad3cd2c5d34f8caec92282536e6f938e7e20dd1925c4843\",\"dweb:/ipfs/QmYmTcZ3oEDWPUnCy6BfrpRMMeMyhe7gF423HbNSPatXs5\"]},\"test/MainDeployment.t.sol\":{\"keccak256\":\"0xc325d950e82c1275d9806943b1690e64356d55e24ce6b96681cdb2fa7e264858\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3b7eb8fceb1be2888ba15070fbcf09f9800691a55eed819d8d8357423213dd8d\",\"dweb:/ipfs/QmamaHtPT67mGBU4J3FV1xeJnWwFGtXETgdTP4Yj4Vp8Wh\"]},\"test/Utility.sol\":{\"keccak256\":\"0x99dbec5203c841f8f092ac42644aa9e24eb927767826dcdf06addc5d5cbea135\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ecd75e3b538d0eb4404ee763ae474c9e4e64cf1e0804795a6787cedef3c0eeda\",\"dweb:/ipfs/QmTwdFYFVDgVZpg3ebGcVr9vF5ffvcZtLzsdJnkRChxL7s\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "", + "type": "string", + "indexed": false + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Debug", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "", + "type": "string", + "indexed": false + }, + { + "internalType": "address", + "name": "", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "Debug", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "", + "type": "string", + "indexed": false + }, + { + "internalType": "bool", + "name": "", + "type": "bool", + "indexed": false + } + ], + "type": "event", + "name": "Debug", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "", + "type": "string", + "indexed": false + }, + { + "internalType": "string", + "name": "", + "type": "string", + "indexed": false + } + ], + "type": "event", + "name": "Debug", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "", + "type": "string", + "indexed": false + } + ], + "type": "event", + "name": "log", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "log_address", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "val", + "type": "uint256[]", + "indexed": false + } + ], + "type": "event", + "name": "log_array", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "int256[]", + "name": "val", + "type": "int256[]", + "indexed": false + } + ], + "type": "event", + "name": "log_array", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "val", + "type": "address[]", + "indexed": false + } + ], + "type": "event", + "name": "log_array", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes", + "indexed": false + } + ], + "type": "event", + "name": "log_bytes", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32", + "indexed": false + } + ], + "type": "event", + "name": "log_bytes32", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256", + "indexed": false + } + ], + "type": "event", + "name": "log_int", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "key", + "type": "string", + "indexed": false + }, + { + "internalType": "address", + "name": "val", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "log_named_address", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "key", + "type": "string", + "indexed": false + }, + { + "internalType": "uint256[]", + "name": "val", + "type": "uint256[]", + "indexed": false + } + ], + "type": "event", + "name": "log_named_array", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "key", + "type": "string", + "indexed": false + }, + { + "internalType": "int256[]", + "name": "val", + "type": "int256[]", + "indexed": false + } + ], + "type": "event", + "name": "log_named_array", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "key", + "type": "string", + "indexed": false + }, + { + "internalType": "address[]", + "name": "val", + "type": "address[]", + "indexed": false + } + ], + "type": "event", + "name": "log_named_array", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "key", + "type": "string", + "indexed": false + }, + { + "internalType": "bytes", + "name": "val", + "type": "bytes", + "indexed": false + } + ], + "type": "event", + "name": "log_named_bytes", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "key", + "type": "string", + "indexed": false + }, + { + "internalType": "bytes32", + "name": "val", + "type": "bytes32", + "indexed": false + } + ], + "type": "event", + "name": "log_named_bytes32", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "key", + "type": "string", + "indexed": false + }, + { + "internalType": "int256", + "name": "val", + "type": "int256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "log_named_decimal_int", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "key", + "type": "string", + "indexed": false + }, + { + "internalType": "uint256", + "name": "val", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "log_named_decimal_uint", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "key", + "type": "string", + "indexed": false + }, + { + "internalType": "int256", + "name": "val", + "type": "int256", + "indexed": false + } + ], + "type": "event", + "name": "log_named_int", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "key", + "type": "string", + "indexed": false + }, + { + "internalType": "string", + "name": "val", + "type": "string", + "indexed": false + } + ], + "type": "event", + "name": "log_named_string", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "key", + "type": "string", + "indexed": false + }, + { + "internalType": "uint256", + "name": "val", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "log_named_uint", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "string", + "name": "", + "type": "string", + "indexed": false + } + ], + "type": "event", + "name": "log_string", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "log_uint", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes", + "indexed": false + } + ], + "type": "event", + "name": "logs", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "CL_FACTORY", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "DL_FACTORY", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "FL_FACTORY", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "INTEREST_CALC_TYPE", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "IS_TEST", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "LATEFEE_CALC_TYPE", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "LL_FACTORY", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "PREMIUM_CALC_TYPE", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "SL_FACTORY", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "val", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "min", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "max", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "nonZero", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function", + "name": "constrictToRange", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "val", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "min", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "max", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function", + "name": "constrictToRange", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "createActors" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "failed", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "symbol", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amt", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "mint" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "setUp" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "setUpTokens" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "test_mainDeploymentTest_claim" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "test_mainDeploymentTest_claim_edge_cases" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "test_mainDeploymentTest_claim_fuzzing1" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "test_mainDeploymentTest_claim_fuzzing2" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "test_mainDeploymentTest_claim_restrictions" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "test_mainDeploymentTest_init_state" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "val0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "val1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expectedDiff", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "withinDiff" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "val0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "val1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "accuracy", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "withinPrecision" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "test_mainDeploymentTest_claim()": { + "details": "Verifies claim() state changes" + }, + "test_mainDeploymentTest_claim_edge_cases()": { + "details": "Verifies claim() edge cases" + }, + "test_mainDeploymentTest_claim_fuzzing1(uint256)": { + "details": "Verifies claim() state changes using fuzzing" + }, + "test_mainDeploymentTest_claim_fuzzing2(uint256)": { + "details": "Verifies claim() edge cases using fuzzing" + }, + "test_mainDeploymentTest_claim_restrictions()": { + "details": "Verifies claim() restrictions" + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "test/MainDeployment.t.sol": "MainDeploymentTest" + }, + "libraries": {} + }, + "sources": { + "lib/forge-std/lib/ds-test/src/test.sol": { + "keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54", + "urls": [ + "bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5", + "dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr" + ], + "license": "GPL-3.0-or-later" + }, + "lib/forge-std/src/Base.sol": { + "keccak256": "0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213", + "urls": [ + "bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd", + "dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4" + ], + "license": "MIT" + }, + "lib/forge-std/src/StdAssertions.sol": { + "keccak256": "0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524", + "urls": [ + "bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec", + "dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw" + ], + "license": "MIT" + }, + "lib/forge-std/src/StdChains.sol": { + "keccak256": "0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606", + "urls": [ + "bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0", + "dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes" + ], + "license": "MIT" + }, + "lib/forge-std/src/StdCheats.sol": { + "keccak256": "0xcf17bed19a42d40b15e584cfc57b1cef2b2b0e55d812f6740afe2c5c4bf801d3", + "urls": [ + "bzz-raw://78e8f19f8b8b6107a39d892d073cfeb8872cce4d5c8e7957d29941e092e16fea", + "dweb:/ipfs/QmYQfx7UYDjSx77d8WmbveFkXK6AyrUfYUdxvufGLbVPSm" + ], + "license": "MIT" + }, + "lib/forge-std/src/StdError.sol": { + "keccak256": "0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77", + "urls": [ + "bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6", + "dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj" + ], + "license": "MIT" + }, + "lib/forge-std/src/StdJson.sol": { + "keccak256": "0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612", + "urls": [ + "bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f", + "dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz" + ], + "license": "MIT" + }, + "lib/forge-std/src/StdMath.sol": { + "keccak256": "0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2", + "urls": [ + "bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92", + "dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC" + ], + "license": "MIT" + }, + "lib/forge-std/src/StdStorage.sol": { + "keccak256": "0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d", + "urls": [ + "bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3", + "dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p" + ], + "license": "MIT" + }, + "lib/forge-std/src/StdUtils.sol": { + "keccak256": "0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf", + "urls": [ + "bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc", + "dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH" + ], + "license": "MIT" + }, + "lib/forge-std/src/Test.sol": { + "keccak256": "0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521", + "urls": [ + "bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51", + "dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd" + ], + "license": "MIT" + }, + "lib/forge-std/src/Vm.sol": { + "keccak256": "0xe4913fabc9dbebe2ebb4ba4eaf629380a71b88b255fabc05492990bfa3b185bc", + "urls": [ + "bzz-raw://c1989ae3326aafbbf80f75036869d5ea3c752614dfce7df17ce0912a7a16dbb7", + "dweb:/ipfs/QmSQju3J4cHLZeVsnWk53it94W2N243mvbyx42hhV5BxED" + ], + "license": "MIT" + }, + "lib/forge-std/src/console.sol": { + "keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba", + "urls": [ + "bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70", + "dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec" + ], + "license": "MIT" + }, + "lib/forge-std/src/console2.sol": { + "keccak256": "0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46", + "urls": [ + "bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88", + "dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW" + ], + "license": "MIT" + }, + "src/TaxToken.sol": { + "keccak256": "0x8027c905e28f0b030a25b3c0fb16c9bd2e100ba07029be13c815977da0a8f014", + "urls": [ + "bzz-raw://8934f9517322735c1bff0c0c5fc963460ee10fb61cc3482c77d2232a0104ebda", + "dweb:/ipfs/Qmf6mrb3BE4dAnvLZpneafJbHRJkGTDrRQAc8gtfVjijx6" + ], + "license": "MIT" + }, + "src/Treasury.sol": { + "keccak256": "0x27460b541b6369e633da21ef4570c204040a4cc0d40e95e78c269848f89b733b", + "urls": [ + "bzz-raw://6e77dd6b109beb9728caf6156ea891e7e02d3167287658260bc3fef57b25699a", + "dweb:/ipfs/QmaZRGiSa4S83tHN9HKDZe1DpgLEyAYZYdU9X3tpGPwCQT" + ], + "license": "MIT" + }, + "src/Vesting.sol": { + "keccak256": "0x3fb59f7d29ccc67ec5aa7b9c064b73734c50c7a68a5f4cac138df7922dfc3356", + "urls": [ + "bzz-raw://0fc8b6e747264c821ede1849cc1c257d97de3006a78b5de396a3837d81377907", + "dweb:/ipfs/QmU4HUzVvgQGUSS2vknorfoLMvfqvz1F5Whr4mW9x46w7w" + ], + "license": "UNLICENSED" + }, + "src/extensions/Context.sol": { + "keccak256": "0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016", + "urls": [ + "bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12", + "dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV" + ], + "license": "MIT" + }, + "src/extensions/Ownable.sol": { + "keccak256": "0xbe3f4ae2a873ee339e0ac54107262ee789604570a463549fd43364289769207f", + "urls": [ + "bzz-raw://ca9dde5e484d808440ff8ac43892b8f59a2b76d5084efce1dfa904d800c0f9c6", + "dweb:/ipfs/QmRnQ2x3a9GwVKf7wbRhNY1MwdxyoTkvDtLFqjXxhEoALA" + ], + "license": "MIT" + }, + "src/interfaces/ERC20.sol": { + "keccak256": "0x66faf9d1ffb72b9815ca0361cc51dcee221d71bf77d1fbc333764ec45ba4625d", + "urls": [ + "bzz-raw://7b8e9fa1d14f1f05c268ea595f8f17b6e7a600b050ca5b28b18cce98a18500bd", + "dweb:/ipfs/Qmdi66SsYxDycpGFRtJZ2eJy5znGp6JKwGsHd4BEkWswka" + ], + "license": "GPL-3.0-or-later" + }, + "src/interfaces/IERC20.sol": { + "keccak256": "0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f", + "urls": [ + "bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be", + "dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA" + ], + "license": "GPL-3.0-or-later" + }, + "src/interfaces/IUniswapV2Factory.sol": { + "keccak256": "0xc47e18780475626ac1da1437417e84442c2328eaa2726669bd4d84d46f64f275", + "urls": [ + "bzz-raw://d0b18cef7206904c41fff4113a98513828cb5e393de57a6b6330dd1010498606", + "dweb:/ipfs/QmRCyXnd2bvUyK39TAX9ddm7Ra7hWdMB7b2tqZeytnDyFm" + ], + "license": "GPL-3.0-or-later" + }, + "src/interfaces/IUniswapV2Router.sol": { + "keccak256": "0xd6f5421763c422b31d0d448ddb3406628b7119a0230d05c82ac932816374f4e4", + "urls": [ + "bzz-raw://0413b1f197957edd78b044d2342ef527c18f768d678967a085a4820b4b6e1cee", + "dweb:/ipfs/QmTekfGmFArRoMM2HQ5hrqxqsDMfahfVa7tc7ddYk7EsD5" + ], + "license": "GPL-3.0-or-later" + }, + "src/interfaces/InterfacesAggregated.sol": { + "keccak256": "0xd5e582438e596ce5ce33c207884e973a7b8717212aa9fd21909b8b2d9c467095", + "urls": [ + "bzz-raw://86a732fe5eb860bed3fc631feb767e2b3145f510c082e64dd062e9b2fca66128", + "dweb:/ipfs/QmcrieewKPRseM8yyGH529sYqb5A4RGDoZsg5F9tDnnnmr" + ], + "license": "GPL-3.0-or-later" + }, + "src/users/Actor.sol": { + "keccak256": "0x6ad8911c2d305f1bac636ad070f00e47cb2912c78883ea24698030b41a39ccd3", + "urls": [ + "bzz-raw://917f42c979b5f2c9bad3cd2c5d34f8caec92282536e6f938e7e20dd1925c4843", + "dweb:/ipfs/QmYmTcZ3oEDWPUnCy6BfrpRMMeMyhe7gF423HbNSPatXs5" + ], + "license": "AGPL-3.0-or-later" + }, + "test/MainDeployment.t.sol": { + "keccak256": "0xc325d950e82c1275d9806943b1690e64356d55e24ce6b96681cdb2fa7e264858", + "urls": [ + "bzz-raw://3b7eb8fceb1be2888ba15070fbcf09f9800691a55eed819d8d8357423213dd8d", + "dweb:/ipfs/QmamaHtPT67mGBU4J3FV1xeJnWwFGtXETgdTP4Yj4Vp8Wh" + ], + "license": "UNLICENSED" + }, + "test/Utility.sol": { + "keccak256": "0x99dbec5203c841f8f092ac42644aa9e24eb927767826dcdf06addc5d5cbea135", + "urls": [ + "bzz-raw://ecd75e3b538d0eb4404ee763ae474c9e4e64cf1e0804795a6787cedef3c0eeda", + "dweb:/ipfs/QmTwdFYFVDgVZpg3ebGcVr9vF5ffvcZtLzsdJnkRChxL7s" + ], + "license": "AGPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "test/MainDeployment.t.sol", + "id": 30866, + "exportedSymbols": { + "Actor": [ + 29769 + ], + "DSTest": [ + 1786 + ], + "Hevm": [ + 30884 + ], + "IERC20": [ + 29102 + ], + "MainDeploymentTest": [ + 30865 + ], + "StdAssertions": [ + 2671 + ], + "StdChains": [ + 3207 + ], + "StdCheats": [ + 5144 + ], + "StdStorage": [ + 6051 + ], + "StdUtils": [ + 8116 + ], + "TaxToken": [ + 26950 + ], + "Test": [ + 8158 + ], + "TestBase": [ + 1843 + ], + "Treasury": [ + 27439 + ], + "User": [ + 30892 + ], + "Utility": [ + 31415 + ], + "Vesting": [ + 28040 + ], + "Vm": [ + 9315 + ], + "console": [ + 17379 + ], + "console2": [ + 25475 + ], + "stdError": [ + 5210 + ], + "stdJson": [ + 5877 + ], + "stdMath": [ + 6019 + ], + "stdStorage": [ + 7485 + ] + }, + "nodeType": "SourceUnit", + "src": "40:11253:25", + "nodes": [ + { + "id": 29771, + "nodeType": "PragmaDirective", + "src": "40:24:25", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".13" + ] + }, + { + "id": 29772, + "nodeType": "ImportDirective", + "src": "68:39:25", + "nodes": [], + "absolutePath": "lib/forge-std/src/Test.sol", + "file": "../lib/forge-std/src/Test.sol", + "nameLocation": "-1:-1:-1", + "scope": 30866, + "sourceUnit": 8159, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 29773, + "nodeType": "ImportDirective", + "src": "109:23:25", + "nodes": [], + "absolutePath": "test/Utility.sol", + "file": "./Utility.sol", + "nameLocation": "-1:-1:-1", + "scope": 30866, + "sourceUnit": 31416, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 29775, + "nodeType": "ImportDirective", + "src": "158:47:25", + "nodes": [], + "absolutePath": "src/TaxToken.sol", + "file": "../src/TaxToken.sol", + "nameLocation": "-1:-1:-1", + "scope": 30866, + "sourceUnit": 26951, + "symbolAliases": [ + { + "foreign": { + "id": 29774, + "name": "TaxToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26950, + "src": "167:8:25", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 29777, + "nodeType": "ImportDirective", + "src": "207:47:25", + "nodes": [], + "absolutePath": "src/Treasury.sol", + "file": "../src/Treasury.sol", + "nameLocation": "-1:-1:-1", + "scope": 30866, + "sourceUnit": 27440, + "symbolAliases": [ + { + "foreign": { + "id": 29776, + "name": "Treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27439, + "src": "216:8:25", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 29779, + "nodeType": "ImportDirective", + "src": "256:46:25", + "nodes": [], + "absolutePath": "src/Vesting.sol", + "file": "../src/Vesting.sol", + "nameLocation": "-1:-1:-1", + "scope": 30866, + "sourceUnit": 28041, + "symbolAliases": [ + { + "foreign": { + "id": 29778, + "name": "Vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28040, + "src": "265:7:25", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 30865, + "nodeType": "ContractDefinition", + "src": "306:10985:25", + "nodes": [ + { + "id": 29786, + "nodeType": "VariableDeclaration", + "src": "358:15:25", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "vesting", + "nameLocation": "366:7:25", + "scope": 30865, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + }, + "typeName": { + "id": 29785, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 29784, + "name": "Vesting", + "nameLocations": [ + "358:7:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28040, + "src": "358:7:25" + }, + "referencedDeclaration": 28040, + "src": "358:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + }, + "visibility": "internal" + }, + { + "id": 29789, + "nodeType": "VariableDeclaration", + "src": "380:19:25", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "proveToken", + "nameLocation": "389:10:25", + "scope": 30865, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + }, + "typeName": { + "id": 29788, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 29787, + "name": "TaxToken", + "nameLocations": [ + "380:8:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 26950, + "src": "380:8:25" + }, + "referencedDeclaration": 26950, + "src": "380:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "visibility": "internal" + }, + { + "id": 29792, + "nodeType": "VariableDeclaration", + "src": "406:17:25", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "treasury", + "nameLocation": "415:8:25", + "scope": 30865, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Treasury_$27439", + "typeString": "contract Treasury" + }, + "typeName": { + "id": 29791, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 29790, + "name": "Treasury", + "nameLocations": [ + "406:8:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27439, + "src": "406:8:25" + }, + "referencedDeclaration": 27439, + "src": "406:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Treasury_$27439", + "typeString": "contract Treasury" + } + }, + "visibility": "internal" + }, + { + "id": 29839, + "nodeType": "FunctionDefinition", + "src": "432:907:25", + "nodes": [], + "body": { + "id": 29838, + "nodeType": "Block", + "src": "456:883:25", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 29795, + "name": "createActors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31085, + "src": "467:12:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 29796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "467:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29797, + "nodeType": "ExpressionStatement", + "src": "467:14:25" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 29798, + "name": "setUpTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31166, + "src": "492:11:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 29799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "492:13:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29800, + "nodeType": "ExpressionStatement", + "src": "492:13:25" + }, + { + "documentation": "@dev Don't need to set up token with treasury because vesting contract should be whitelisted.", + "expression": { + "id": 29812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 29801, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "660:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "315f3030305f3030305f303030", + "id": 29805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "700:13:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1_000_000_000" + }, + { + "hexValue": "50726f7665205a65726f", + "id": 29806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "760:12:25", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c900c516ee73216c64eade2cd8ccc2434cd50effa418041858134e4a85b424c1", + "typeString": "literal_string \"Prove Zero\"" + }, + "value": "Prove Zero" + }, + { + "hexValue": "50524f5645", + "id": 29807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "809:7:25", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_249fb649834e62ac501a1d393552d419515bf75f4806119e8d601f8ad51d6f54", + "typeString": "literal_string \"PROVE\"" + }, + "value": "PROVE" + }, + { + "hexValue": "3138", + "id": 29808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "860:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + { + "hexValue": "315f3030305f3030305f303030", + "id": 29809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "917:13:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1_000_000_000" + }, + { + "hexValue": "315f3030305f3030305f303030", + "id": 29810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "970:13:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1_000_000_000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + { + "typeIdentifier": "t_stringliteral_c900c516ee73216c64eade2cd8ccc2434cd50effa418041858134e4a85b424c1", + "typeString": "literal_string \"Prove Zero\"" + }, + { + "typeIdentifier": "t_stringliteral_249fb649834e62ac501a1d393552d419515bf75f4806119e8d601f8ad51d6f54", + "typeString": "literal_string \"PROVE\"" + }, + { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + } + ], + "id": 29804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "673:12:25", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$_t_uint256_$_t_uint256_$returns$_t_contract$_TaxToken_$26950_$", + "typeString": "function (uint256,string memory,string memory,uint8,uint256,uint256) returns (contract TaxToken)" + }, + "typeName": { + "id": 29803, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 29802, + "name": "TaxToken", + "nameLocations": [ + "677:8:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 26950, + "src": "677:8:25" + }, + "referencedDeclaration": 26950, + "src": "677:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + } + }, + "id": 29811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "673:352:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "src": "660:365:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 29813, + "nodeType": "ExpressionStatement", + "src": "660:365:25" + }, + { + "expression": { + "id": 29827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 29814, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "1134:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 29820, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "1178:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + ], + "id": 29819, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1170:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29818, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1170:7:25", + "typeDescriptions": {} + } + }, + "id": 29821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1170:19:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 29824, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "1214:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 29823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1206:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29822, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1206:7:25", + "typeDescriptions": {} + } + }, + "id": 29825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1206:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 29817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1144:11:25", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_address_$returns$_t_contract$_Vesting_$28040_$", + "typeString": "function (address,address) returns (contract Vesting)" + }, + "typeName": { + "id": 29816, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 29815, + "name": "Vesting", + "nameLocations": [ + "1148:7:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28040, + "src": "1148:7:25" + }, + "referencedDeclaration": 28040, + "src": "1148:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + }, + "id": 29826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1144:85:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + }, + "src": "1134:95:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + }, + "id": 29828, + "nodeType": "ExpressionStatement", + "src": "1134:95:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 29834, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "1322:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 29833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1314:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1314:7:25", + "typeDescriptions": {} + } + }, + "id": 29835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1314:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 29829, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "1292:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 29831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1303:10:25", + "memberName": "setVesting", + "nodeType": "MemberAccess", + "referencedDeclaration": 26559, + "src": "1292:21:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 29836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1292:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29837, + "nodeType": "ExpressionStatement", + "src": "1292:39:25" + } + ] + }, + "functionSelector": "0a9254e4", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setUp", + "nameLocation": "441:5:25", + "parameters": { + "id": 29793, + "nodeType": "ParameterList", + "parameters": [], + "src": "446:2:25" + }, + "returnParameters": { + "id": 29794, + "nodeType": "ParameterList", + "parameters": [], + "src": "456:0:25" + }, + "scope": 30865, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 29957, + "nodeType": "FunctionDefinition", + "src": "1375:828:25", + "nodes": [], + "body": { + "id": 29956, + "nodeType": "Block", + "src": "1428:775:25", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 29843, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "1448:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 29844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1459:11:25", + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 28611, + "src": "1448:22:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 29845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1448:24:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "315f3030305f3030305f303030", + "id": 29846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1478:19:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000000" + }, + "value": "1_000_000_000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000000" + } + ], + "id": 29842, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "1439:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 29847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1439:59:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29848, + "nodeType": "ExpressionStatement", + "src": "1439:59:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 29854, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1547:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MainDeploymentTest_$30865", + "typeString": "contract MainDeploymentTest" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_MainDeploymentTest_$30865", + "typeString": "contract MainDeploymentTest" + } + ], + "id": 29853, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1539:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29852, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1539:7:25", + "typeDescriptions": {} + } + }, + "id": 29855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1539:13:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 29850, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "1518:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 29851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1529:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "1518:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 29856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1518:35:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "315f3030305f3030305f303030", + "id": 29857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1558:19:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000000" + }, + "value": "1_000_000_000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000000" + } + ], + "id": 29849, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "1509:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 29858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1509:69:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29859, + "nodeType": "ExpressionStatement", + "src": "1509:69:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 29865, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "1627:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 29864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1619:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1619:7:25", + "typeDescriptions": {} + } + }, + "id": 29866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1619:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 29861, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "1598:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 29862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1609:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "1598:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 29867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1598:38:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 29868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1638:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 29860, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "1589:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 29869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1589:51:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29870, + "nodeType": "ExpressionStatement", + "src": "1589:51:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 29872, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "1660:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 29873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1671:5:25", + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 28115, + "src": "1660:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 29874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1660:18:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 29877, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1691:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MainDeploymentTest_$30865", + "typeString": "contract MainDeploymentTest" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_MainDeploymentTest_$30865", + "typeString": "contract MainDeploymentTest" + } + ], + "id": 29876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1683:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29875, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1683:7:25", + "typeDescriptions": {} + } + }, + "id": 29878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1683:13:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 29871, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 320, + "src": "1651:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 29879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1651:46:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29880, + "nodeType": "ExpressionStatement", + "src": "1651:46:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 29882, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "1717:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 29883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1728:7:25", + "memberName": "vesting", + "nodeType": "MemberAccess", + "referencedDeclaration": 25506, + "src": "1717:18:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 29884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1717:20:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 29887, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "1748:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 29886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1740:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29885, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1740:7:25", + "typeDescriptions": {} + } + }, + "id": 29888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1740:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 29881, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 320, + "src": "1708:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 29889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1708:49:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29890, + "nodeType": "ExpressionStatement", + "src": "1708:49:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 29894, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "1798:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 29895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1809:7:25", + "memberName": "vesting", + "nodeType": "MemberAccess", + "referencedDeclaration": 25506, + "src": "1798:18:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 29896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1798:20:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 29892, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "1777:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 29893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1788:9:25", + "memberName": "whitelist", + "nodeType": "MemberAccess", + "referencedDeclaration": 25534, + "src": "1777:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 29897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1777:42:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "74727565", + "id": 29898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1823:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 29891, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 1974, + "src": "1768:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", + "typeString": "function (bool,bool)" + } + }, + "id": 29899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1768:60:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29900, + "nodeType": "ExpressionStatement", + "src": "1768:60:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 29906, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "1877:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + ], + "id": 29905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1869:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29904, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1869:7:25", + "typeDescriptions": {} + } + }, + "id": 29907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1869:19:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 29902, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "1848:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 29903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1859:9:25", + "memberName": "whitelist", + "nodeType": "MemberAccess", + "referencedDeclaration": 25534, + "src": "1848:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 29908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1848:41:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "74727565", + "id": 29909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1894:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 29901, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 1974, + "src": "1839:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", + "typeString": "function (bool,bool)" + } + }, + "id": 29910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1839:60:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29911, + "nodeType": "ExpressionStatement", + "src": "1839:60:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 29915, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "1940:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 29916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1951:5:25", + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 28115, + "src": "1940:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 29917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1940:18:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 29913, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "1919:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 29914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1930:9:25", + "memberName": "whitelist", + "nodeType": "MemberAccess", + "referencedDeclaration": 25534, + "src": "1919:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 29918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1919:40:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "74727565", + "id": 29919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1965:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 29912, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 1974, + "src": "1910:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", + "typeString": "function (bool,bool)" + } + }, + "id": 29920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1910:60:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29921, + "nodeType": "ExpressionStatement", + "src": "1910:60:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 29923, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "1992:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + }, + "id": 29924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2000:10:25", + "memberName": "proveToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 27449, + "src": "1992:18:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 29925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1992:20:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 29928, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "2028:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + ], + "id": 29927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2020:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29926, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2020:7:25", + "typeDescriptions": {} + } + }, + "id": 29929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2020:19:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 29922, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 320, + "src": "1983:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 29930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1983:57:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29931, + "nodeType": "ExpressionStatement", + "src": "1983:57:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 29933, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "2060:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + }, + "id": 29934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2068:16:25", + "memberName": "vestingStartUnix", + "nodeType": "MemberAccess", + "referencedDeclaration": 27452, + "src": "2060:24:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 29935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2060:26:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 29936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2088:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 29932, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "2051:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 29937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2051:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29938, + "nodeType": "ExpressionStatement", + "src": "2051:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 29940, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "2110:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + }, + "id": 29941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2118:14:25", + "memberName": "vestingEnabled", + "nodeType": "MemberAccess", + "referencedDeclaration": 27455, + "src": "2110:22:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$", + "typeString": "function () view external returns (bool)" + } + }, + "id": 29942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2110:24:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "66616c7365", + "id": 29943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2138:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 29939, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 1974, + "src": "2101:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", + "typeString": "function (bool,bool)" + } + }, + "id": 29944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2101:43:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29945, + "nodeType": "ExpressionStatement", + "src": "2101:43:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 29947, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "2164:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + }, + "id": 29948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2172:5:25", + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 28115, + "src": "2164:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 29949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2164:15:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 29952, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "2190:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 29951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2182:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2182:7:25", + "typeDescriptions": {} + } + }, + "id": 29953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2182:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 29946, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 320, + "src": "2155:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 29954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2155:40:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29955, + "nodeType": "ExpressionStatement", + "src": "2155:40:25" + } + ] + }, + "functionSelector": "0a831a15", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "test_mainDeploymentTest_init_state", + "nameLocation": "1384:34:25", + "parameters": { + "id": 29840, + "nodeType": "ParameterList", + "parameters": [], + "src": "1418:2:25" + }, + "returnParameters": { + "id": 29841, + "nodeType": "ParameterList", + "parameters": [], + "src": "1428:0:25" + }, + "scope": 30865, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 30062, + "nodeType": "FunctionDefinition", + "src": "2283:1126:25", + "nodes": [], + "body": { + "id": 30061, + "nodeType": "Block", + "src": "2344:1065:25", + "nodes": [], + "statements": [ + { + "assignments": [ + 29962 + ], + "declarations": [ + { + "constant": false, + "id": 29962, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "2360:7:25", + "nodeType": "VariableDeclaration", + "scope": 30061, + "src": "2355:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29961, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2355:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 29964, + "initialValue": { + "hexValue": "355f3030305f303030", + "id": 29963, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2370:15:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_5000000000000000000000000_by_1", + "typeString": "int_const 5000000000000000000000000" + }, + "value": "5_000_000" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2355:30:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 29970, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "2480:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 29969, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2472:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2472:7:25", + "typeDescriptions": {} + } + }, + "id": 29971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2472:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 29972, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29962, + "src": "2490:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 29965, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "2452:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 29967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2463:8:25", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 28646, + "src": "2452:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 29973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2452:46:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 29974, + "nodeType": "ExpressionStatement", + "src": "2452:46:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 29980, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "2568:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 29979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2560:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29978, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2560:7:25", + "typeDescriptions": {} + } + }, + "id": 29981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2560:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 29975, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1836, + "src": "2546:2:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$9315", + "typeString": "contract Vm" + } + }, + "id": 29977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2549:10:25", + "memberName": "startPrank", + "nodeType": "MemberAccess", + "referencedDeclaration": 9043, + "src": "2546:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 29982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2546:27:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29983, + "nodeType": "ExpressionStatement", + "src": "2546:27:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e73656e646572206d75737420626520616e20696e766573746f72", + "id": 29987, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2655:60:25", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_04c0e7337b94cd08ab709ab9e01a52972b8997f541f0ec03cfdf895720fa5020", + "typeString": "literal_string \"Vesting.sol::onlyInvestor() msg.sender must be an investor\"" + }, + "value": "Vesting.sol::onlyInvestor() msg.sender must be an investor" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_04c0e7337b94cd08ab709ab9e01a52972b8997f541f0ec03cfdf895720fa5020", + "typeString": "literal_string \"Vesting.sol::onlyInvestor() msg.sender must be an investor\"" + } + ], + "expression": { + "id": 29984, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1836, + "src": "2639:2:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$9315", + "typeString": "contract Vm" + } + }, + "id": 29986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2642:12:25", + "memberName": "expectRevert", + "nodeType": "MemberAccess", + "referencedDeclaration": 9079, + "src": "2639:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory) external" + } + }, + "id": 29988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2639:77:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29989, + "nodeType": "ExpressionStatement", + "src": "2639:77:25" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 29990, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "2727:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + }, + "id": 29992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2735:5:25", + "memberName": "claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 27592, + "src": "2727:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 29993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2727:15:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 29994, + "nodeType": "ExpressionStatement", + "src": "2727:15:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30000, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "2822:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 29999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2814:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 29998, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2814:7:25", + "typeDescriptions": {} + } + }, + "id": 30001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2814:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 30004, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "2840:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2832:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2832:7:25", + "typeDescriptions": {} + } + }, + "id": 30005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2832:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "315f3030305f303030", + "id": 30006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2846:15:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + }, + "value": "1_000_000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + } + ], + "expression": { + "id": 29996, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "2794:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 29997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2798:15:25", + "memberName": "try_addInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 29684, + "src": "2794:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 30007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2794:68:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 29995, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "2787:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2787:76:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30009, + "nodeType": "ExpressionStatement", + "src": "2787:76:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "56657374696e672e736f6c3a3a636c61696d28292076657374696e67206973206e6f7420656e61626c6564", + "id": 30013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2945:45:25", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_34ce9ff9fcf1e453c578e481f1424d1ad92317cc4ad3678a8839da76e7fbb7d6", + "typeString": "literal_string \"Vesting.sol::claim() vesting is not enabled\"" + }, + "value": "Vesting.sol::claim() vesting is not enabled" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_34ce9ff9fcf1e453c578e481f1424d1ad92317cc4ad3678a8839da76e7fbb7d6", + "typeString": "literal_string \"Vesting.sol::claim() vesting is not enabled\"" + } + ], + "expression": { + "id": 30010, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1836, + "src": "2929:2:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$9315", + "typeString": "contract Vm" + } + }, + "id": 30012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2932:12:25", + "memberName": "expectRevert", + "nodeType": "MemberAccess", + "referencedDeclaration": 9079, + "src": "2929:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory) external" + } + }, + "id": 30014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2929:62:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30015, + "nodeType": "ExpressionStatement", + "src": "2929:62:25" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 30016, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "3002:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + }, + "id": 30018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3010:5:25", + "memberName": "claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 27592, + "src": "3002:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 30019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3002:15:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30020, + "nodeType": "ExpressionStatement", + "src": "3002:15:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30026, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "3094:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30025, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3086:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30024, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3086:7:25", + "typeDescriptions": {} + } + }, + "id": 30027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3086:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30022, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "3064:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3068:17:25", + "memberName": "try_enableVesting", + "nodeType": "MemberAccess", + "referencedDeclaration": 29622, + "src": "3064:21:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3064:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30021, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "3057:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3057:47:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30030, + "nodeType": "ExpressionStatement", + "src": "3057:47:25" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 30031, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "3154:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + }, + "id": 30033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3162:5:25", + "memberName": "claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 27592, + "src": "3154:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 30034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:15:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30035, + "nodeType": "ExpressionStatement", + "src": "3154:15:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3532", + "id": 30037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3187:8:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_31449600_by_1", + "typeString": "int_const 31449600" + }, + "value": "52" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_31449600_by_1", + "typeString": "int_const 31449600" + } + ], + "id": 30036, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "3182:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3182:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30039, + "nodeType": "ExpressionStatement", + "src": "3182:14:25" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 30040, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "3247:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + }, + "id": 30042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3255:5:25", + "memberName": "claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 27592, + "src": "3247:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 30043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3247:15:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30044, + "nodeType": "ExpressionStatement", + "src": "3247:15:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686173206e6f20746f6b656e7320746f20636c61696d", + "id": 30048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3291:54:25", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7fe10741cbe6c2a9cecbadf80743676cd6f5fd9119dd5a58d21ffa6d6e330a51", + "typeString": "literal_string \"Vesting.sol::claim() investor has no tokens to claim\"" + }, + "value": "Vesting.sol::claim() investor has no tokens to claim" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_7fe10741cbe6c2a9cecbadf80743676cd6f5fd9119dd5a58d21ffa6d6e330a51", + "typeString": "literal_string \"Vesting.sol::claim() investor has no tokens to claim\"" + } + ], + "expression": { + "id": 30045, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1836, + "src": "3275:2:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$9315", + "typeString": "contract Vm" + } + }, + "id": 30047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3278:12:25", + "memberName": "expectRevert", + "nodeType": "MemberAccess", + "referencedDeclaration": 9079, + "src": "3275:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory) external" + } + }, + "id": 30049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3275:71:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30050, + "nodeType": "ExpressionStatement", + "src": "3275:71:25" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 30051, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "3357:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + }, + "id": 30053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3365:5:25", + "memberName": "claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 27592, + "src": "3357:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 30054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3357:15:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30055, + "nodeType": "ExpressionStatement", + "src": "3357:15:25" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 30056, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1836, + "src": "3385:2:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$9315", + "typeString": "contract Vm" + } + }, + "id": 30058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3388:9:25", + "memberName": "stopPrank", + "nodeType": "MemberAccess", + "referencedDeclaration": 9060, + "src": "3385:12:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 30059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3385:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30060, + "nodeType": "ExpressionStatement", + "src": "3385:14:25" + } + ] + }, + "documentation": { + "id": 29958, + "nodeType": "StructuredDocumentation", + "src": "2239:38:25", + "text": "@dev Verifies claim() restrictions" + }, + "functionSelector": "6686e154", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "test_mainDeploymentTest_claim_restrictions", + "nameLocation": "2292:42:25", + "parameters": { + "id": 29959, + "nodeType": "ParameterList", + "parameters": [], + "src": "2334:2:25" + }, + "returnParameters": { + "id": 29960, + "nodeType": "ParameterList", + "parameters": [], + "src": "2344:0:25" + }, + "scope": 30865, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 30268, + "nodeType": "FunctionDefinition", + "src": "3462:1782:25", + "nodes": [], + "body": { + "id": 30267, + "nodeType": "Block", + "src": "3510:1734:25", + "nodes": [], + "statements": [ + { + "assignments": [ + 30067 + ], + "declarations": [ + { + "constant": false, + "id": 30067, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "3526:7:25", + "nodeType": "VariableDeclaration", + "scope": 30267, + "src": "3521:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30066, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3521:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 30069, + "initialValue": { + "hexValue": "315f3030305f303030", + "id": 30068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3536:15:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + }, + "value": "1_000_000" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3521:30:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 30075, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "3646:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3638:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30073, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3638:7:25", + "typeDescriptions": {} + } + }, + "id": 30076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3638:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 30077, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30067, + "src": "3656:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 30070, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "3618:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3629:8:25", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 28646, + "src": "3618:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 30078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3618:46:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 30079, + "nodeType": "ExpressionStatement", + "src": "3618:46:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 30085, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "3734:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3726:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3726:7:25", + "typeDescriptions": {} + } + }, + "id": 30086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3726:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30080, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1836, + "src": "3712:2:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$9315", + "typeString": "contract Vm" + } + }, + "id": 30082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3715:10:25", + "memberName": "startPrank", + "nodeType": "MemberAccess", + "referencedDeclaration": 9043, + "src": "3712:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 30087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3712:27:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30088, + "nodeType": "ExpressionStatement", + "src": "3712:27:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30094, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "3819:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3811:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30092, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3811:7:25", + "typeDescriptions": {} + } + }, + "id": 30095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3811:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 30098, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "3837:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3829:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30096, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3829:7:25", + "typeDescriptions": {} + } + }, + "id": 30099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3829:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 30100, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30067, + "src": "3843:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 30090, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "3791:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3795:15:25", + "memberName": "try_addInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 29684, + "src": "3791:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 30101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3791:60:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30089, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "3784:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3784:68:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30103, + "nodeType": "ExpressionStatement", + "src": "3784:68:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30109, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "3929:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3921:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3921:7:25", + "typeDescriptions": {} + } + }, + "id": 30110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3921:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30105, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "3899:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3903:17:25", + "memberName": "try_enableVesting", + "nodeType": "MemberAccess", + "referencedDeclaration": 29622, + "src": "3899:21:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3899:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30104, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "3892:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3892:47:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30113, + "nodeType": "ExpressionStatement", + "src": "3892:47:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30119, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "4018:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4010:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4010:7:25", + "typeDescriptions": {} + } + }, + "id": 30120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4010:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30115, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "3989:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4000:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "3989:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3989:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 30122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4025:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 30114, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "3980:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3980:47:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30124, + "nodeType": "ExpressionStatement", + "src": "3980:47:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30130, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "4108:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4100:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4100:7:25", + "typeDescriptions": {} + } + }, + "id": 30131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4100:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30126, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "4086:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4090:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "4086:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4086:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30125, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "4079:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4079:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30134, + "nodeType": "ExpressionStatement", + "src": "4079:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30140, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "4198:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4190:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4190:7:25", + "typeDescriptions": {} + } + }, + "id": 30141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4190:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30136, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "4169:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4180:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "4169:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4169:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30143, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30067, + "src": "4205:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3132", + "id": 30144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4215:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "4205:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 30146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4220:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "4205:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 30135, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "4160:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4160:64:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30149, + "nodeType": "ExpressionStatement", + "src": "4160:64:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "34", + "id": 30151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4267:7:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_2419200_by_1", + "typeString": "int_const 2419200" + }, + "value": "4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_2419200_by_1", + "typeString": "int_const 2419200" + } + ], + "id": 30150, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "4262:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4262:13:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30153, + "nodeType": "ExpressionStatement", + "src": "4262:13:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30159, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "4356:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4348:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30157, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4348:7:25", + "typeDescriptions": {} + } + }, + "id": 30160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4348:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30155, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "4334:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4338:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "4334:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4334:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30154, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "4327:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4327:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30163, + "nodeType": "ExpressionStatement", + "src": "4327:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30169, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "4446:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4438:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4438:7:25", + "typeDescriptions": {} + } + }, + "id": 30170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4438:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30165, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "4417:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4428:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "4417:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4417:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30172, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30067, + "src": "4453:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3230", + "id": 30173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4463:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "4453:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 30175, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4468:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "4453:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 30164, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "4408:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4408:64:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30178, + "nodeType": "ExpressionStatement", + "src": "4408:64:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "34", + "id": 30180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4515:7:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_2419200_by_1", + "typeString": "int_const 2419200" + }, + "value": "4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_2419200_by_1", + "typeString": "int_const 2419200" + } + ], + "id": 30179, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "4510:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4510:13:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30182, + "nodeType": "ExpressionStatement", + "src": "4510:13:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30188, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "4604:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4596:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4596:7:25", + "typeDescriptions": {} + } + }, + "id": 30189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4596:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30184, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "4582:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4586:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "4582:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4582:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30183, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "4575:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4575:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30192, + "nodeType": "ExpressionStatement", + "src": "4575:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30198, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "4694:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4686:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30196, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4686:7:25", + "typeDescriptions": {} + } + }, + "id": 30199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4686:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30194, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "4665:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4676:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "4665:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4665:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30201, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30067, + "src": "4701:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3238", + "id": 30202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4711:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_28_by_1", + "typeString": "int_const 28" + }, + "value": "28" + }, + "src": "4701:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 30204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4716:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "4701:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 30193, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "4656:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4656:64:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30207, + "nodeType": "ExpressionStatement", + "src": "4656:64:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3132", + "id": 30209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4764:8:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_7257600_by_1", + "typeString": "int_const 7257600" + }, + "value": "12" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_7257600_by_1", + "typeString": "int_const 7257600" + } + ], + "id": 30208, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "4759:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4759:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30211, + "nodeType": "ExpressionStatement", + "src": "4759:14:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30217, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "4854:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4846:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4846:7:25", + "typeDescriptions": {} + } + }, + "id": 30218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4846:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30213, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "4832:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4836:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "4832:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4832:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30212, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "4825:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4825:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30221, + "nodeType": "ExpressionStatement", + "src": "4825:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30227, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "4944:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4936:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30225, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4936:7:25", + "typeDescriptions": {} + } + }, + "id": 30228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4936:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30223, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "4915:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4926:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "4915:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4915:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30230, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30067, + "src": "4951:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3532", + "id": 30231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4961:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_52_by_1", + "typeString": "int_const 52" + }, + "value": "52" + }, + "src": "4951:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 30233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4966:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "4951:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 30222, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "4906:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4906:64:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30236, + "nodeType": "ExpressionStatement", + "src": "4906:64:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3234", + "id": 30238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5014:8:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_14515200_by_1", + "typeString": "int_const 14515200" + }, + "value": "24" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_14515200_by_1", + "typeString": "int_const 14515200" + } + ], + "id": 30237, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "5009:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5009:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30240, + "nodeType": "ExpressionStatement", + "src": "5009:14:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30246, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "5104:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5096:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5096:7:25", + "typeDescriptions": {} + } + }, + "id": 30247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5096:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30242, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "5082:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5086:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "5082:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5082:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30241, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "5075:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5075:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30250, + "nodeType": "ExpressionStatement", + "src": "5075:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30256, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "5194:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5186:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30254, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5186:7:25", + "typeDescriptions": {} + } + }, + "id": 30257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5186:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30252, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "5165:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5176:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "5165:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5165:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 30259, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30067, + "src": "5201:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 30251, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "5156:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5156:53:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30261, + "nodeType": "ExpressionStatement", + "src": "5156:53:25" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 30262, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1836, + "src": "5222:2:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$9315", + "typeString": "contract Vm" + } + }, + "id": 30264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5225:9:25", + "memberName": "stopPrank", + "nodeType": "MemberAccess", + "referencedDeclaration": 9060, + "src": "5222:12:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 30265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5222:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30266, + "nodeType": "ExpressionStatement", + "src": "5222:14:25" + } + ] + }, + "documentation": { + "id": 30063, + "nodeType": "StructuredDocumentation", + "src": "3417:39:25", + "text": "@dev Verifies claim() state changes" + }, + "functionSelector": "b8dae58b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "test_mainDeploymentTest_claim", + "nameLocation": "3471:29:25", + "parameters": { + "id": 30064, + "nodeType": "ParameterList", + "parameters": [], + "src": "3500:2:25" + }, + "returnParameters": { + "id": 30065, + "nodeType": "ParameterList", + "parameters": [], + "src": "3510:0:25" + }, + "scope": 30865, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 30454, + "nodeType": "FunctionDefinition", + "src": "5294:1960:25", + "nodes": [], + "body": { + "id": 30453, + "nodeType": "Block", + "src": "5353:1901:25", + "nodes": [], + "statements": [ + { + "assignments": [ + 30273 + ], + "declarations": [ + { + "constant": false, + "id": 30273, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "5369:7:25", + "nodeType": "VariableDeclaration", + "scope": 30453, + "src": "5364:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30272, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5364:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 30275, + "initialValue": { + "hexValue": "355f3030305f303030", + "id": 30274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5379:15:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_5000000000000000000000000_by_1", + "typeString": "int_const 5000000000000000000000000" + }, + "value": "5_000_000" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5364:30:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 30281, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "5435:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5427:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30279, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5427:7:25", + "typeDescriptions": {} + } + }, + "id": 30282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5427:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 30283, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30273, + "src": "5445:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 30276, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "5407:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5418:8:25", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 28646, + "src": "5407:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 30284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5407:46:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 30285, + "nodeType": "ExpressionStatement", + "src": "5407:46:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30291, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "5529:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5521:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30289, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5521:7:25", + "typeDescriptions": {} + } + }, + "id": 30292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5521:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30287, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "5499:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5503:17:25", + "memberName": "try_enableVesting", + "nodeType": "MemberAccess", + "referencedDeclaration": 29622, + "src": "5499:21:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5499:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30286, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "5492:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5492:47:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30295, + "nodeType": "ExpressionStatement", + "src": "5492:47:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30301, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "5676:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5668:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30299, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5668:7:25", + "typeDescriptions": {} + } + }, + "id": 30302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5668:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 30305, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "5694:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5686:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5686:7:25", + "typeDescriptions": {} + } + }, + "id": 30306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5686:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "315f3030305f303030", + "id": 30307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5700:15:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + }, + "value": "1_000_000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + } + ], + "expression": { + "id": 30297, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "5648:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5652:15:25", + "memberName": "try_addInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 29684, + "src": "5648:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 30308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5648:68:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30296, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "5641:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5641:76:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30310, + "nodeType": "ExpressionStatement", + "src": "5641:76:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30316, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "5797:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5789:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5789:7:25", + "typeDescriptions": {} + } + }, + "id": 30317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5789:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 30320, + "name": "joe", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30900, + "src": "5815:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5807:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5807:7:25", + "typeDescriptions": {} + } + }, + "id": 30321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5807:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "315f3030305f303030", + "id": 30322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5821:15:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + }, + "value": "1_000_000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + } + ], + "expression": { + "id": 30312, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "5769:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5773:15:25", + "memberName": "try_addInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 29684, + "src": "5769:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 30323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5769:68:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30311, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "5762:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5762:76:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30325, + "nodeType": "ExpressionStatement", + "src": "5762:76:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30331, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "5918:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5910:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30329, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5910:7:25", + "typeDescriptions": {} + } + }, + "id": 30332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5910:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 30335, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "5936:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5928:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30333, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5928:7:25", + "typeDescriptions": {} + } + }, + "id": 30336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5928:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "315f3030305f303030", + "id": 30337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5942:15:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + }, + "value": "1_000_000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + } + ], + "expression": { + "id": 30327, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "5890:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5894:15:25", + "memberName": "try_addInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 29684, + "src": "5890:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 30338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5890:68:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30326, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "5883:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5883:76:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30340, + "nodeType": "ExpressionStatement", + "src": "5883:76:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "32", + "id": 30342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6039:7:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_1209600_by_1", + "typeString": "int_const 1209600" + }, + "value": "2" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1209600_by_1", + "typeString": "int_const 1209600" + } + ], + "id": 30341, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "6034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6034:13:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30344, + "nodeType": "ExpressionStatement", + "src": "6034:13:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30350, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "6087:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6079:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6079:7:25", + "typeDescriptions": {} + } + }, + "id": 30351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6079:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30346, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "6065:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6069:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "6065:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6065:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30345, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "6058:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6058:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30354, + "nodeType": "ExpressionStatement", + "src": "6058:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30360, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "6212:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30359, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6204:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30358, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6204:7:25", + "typeDescriptions": {} + } + }, + "id": 30361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6204:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30356, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "6183:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6194:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "6183:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6183:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_120000000000000000000000_by_1", + "typeString": "int_const 120000000000000000000000" + }, + "id": 30367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_12000000000000000000000000_by_1", + "typeString": "int_const 12000000000000000000000000" + }, + "id": 30365, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "315f3030305f303030", + "id": 30363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6220:15:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + }, + "value": "1_000_000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3132", + "id": 30364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6238:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "6220:20:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_12000000000000000000000000_by_1", + "typeString": "int_const 12000000000000000000000000" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 30366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6243:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "6220:26:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_120000000000000000000000_by_1", + "typeString": "int_const 120000000000000000000000" + } + } + ], + "id": 30368, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6219:28:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_120000000000000000000000_by_1", + "typeString": "int_const 120000000000000000000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_120000000000000000000000_by_1", + "typeString": "int_const 120000000000000000000000" + } + ], + "id": 30355, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "6174:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6174:75:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30370, + "nodeType": "ExpressionStatement", + "src": "6174:75:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3232", + "id": 30372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6319:8:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_13305600_by_1", + "typeString": "int_const 13305600" + }, + "value": "22" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_13305600_by_1", + "typeString": "int_const 13305600" + } + ], + "id": 30371, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "6314:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6314:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30374, + "nodeType": "ExpressionStatement", + "src": "6314:14:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30380, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "6422:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6414:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30378, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6414:7:25", + "typeDescriptions": {} + } + }, + "id": 30381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6414:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30376, + "name": "joe", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30900, + "src": "6400:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6404:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "6400:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6400:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30375, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "6393:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6393:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30384, + "nodeType": "ExpressionStatement", + "src": "6393:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30390, + "name": "joe", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30900, + "src": "6547:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6539:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6539:7:25", + "typeDescriptions": {} + } + }, + "id": 30391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6539:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30386, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "6518:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6529:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "6518:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6518:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_600000000000000000000000_by_1", + "typeString": "int_const 600000000000000000000000" + }, + "id": 30397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_60000000000000000000000000_by_1", + "typeString": "int_const 60000000000000000000000000" + }, + "id": 30395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "315f3030305f303030", + "id": 30393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6555:15:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + }, + "value": "1_000_000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3630", + "id": 30394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6573:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "6555:20:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_60000000000000000000000000_by_1", + "typeString": "int_const 60000000000000000000000000" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 30396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6578:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "6555:26:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_600000000000000000000000_by_1", + "typeString": "int_const 600000000000000000000000" + } + } + ], + "id": 30398, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6554:28:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_600000000000000000000000_by_1", + "typeString": "int_const 600000000000000000000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_600000000000000000000000_by_1", + "typeString": "int_const 600000000000000000000000" + } + ], + "id": 30385, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "6509:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6509:74:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30400, + "nodeType": "ExpressionStatement", + "src": "6509:74:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3230", + "id": 30402, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6654:8:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_12096000_by_1", + "typeString": "int_const 12096000" + }, + "value": "20" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_12096000_by_1", + "typeString": "int_const 12096000" + } + ], + "id": 30401, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "6649:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6649:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30404, + "nodeType": "ExpressionStatement", + "src": "6649:14:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30410, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "6783:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6775:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6775:7:25", + "typeDescriptions": {} + } + }, + "id": 30411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6775:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30406, + "name": "joe", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30900, + "src": "6761:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6765:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "6761:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6761:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30405, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "6754:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6754:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30414, + "nodeType": "ExpressionStatement", + "src": "6754:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30420, + "name": "joe", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30900, + "src": "6897:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6889:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30418, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6889:7:25", + "typeDescriptions": {} + } + }, + "id": 30421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6889:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30416, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "6868:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6879:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "6868:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6868:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "components": [ + { + "hexValue": "315f3030305f303030", + "id": 30423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6905:15:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + }, + "value": "1_000_000" + } + ], + "id": 30424, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6904:17:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + } + ], + "id": 30415, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "6859:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6859:63:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30426, + "nodeType": "ExpressionStatement", + "src": "6859:63:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3532", + "id": 30428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6972:8:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_31449600_by_1", + "typeString": "int_const 31449600" + }, + "value": "52" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_31449600_by_1", + "typeString": "int_const 31449600" + } + ], + "id": 30427, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "6967:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6967:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30430, + "nodeType": "ExpressionStatement", + "src": "6967:14:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30436, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "7097:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7089:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30434, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7089:7:25", + "typeDescriptions": {} + } + }, + "id": 30437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7089:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30432, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "7075:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7079:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "7075:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7075:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30431, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "7068:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7068:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30440, + "nodeType": "ExpressionStatement", + "src": "7068:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30446, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "7219:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7211:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7211:7:25", + "typeDescriptions": {} + } + }, + "id": 30447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7211:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30442, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "7190:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7201:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "7190:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7190:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "components": [ + { + "hexValue": "315f3030305f303030", + "id": 30449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7227:15:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + }, + "value": "1_000_000" + } + ], + "id": 30450, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7226:17:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + } + ], + "id": 30441, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "7181:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7181:63:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30452, + "nodeType": "ExpressionStatement", + "src": "7181:63:25" + } + ] + }, + "documentation": { + "id": 30269, + "nodeType": "StructuredDocumentation", + "src": "5252:36:25", + "text": "@dev Verifies claim() edge cases" + }, + "functionSelector": "04740900", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "test_mainDeploymentTest_claim_edge_cases", + "nameLocation": "5303:40:25", + "parameters": { + "id": 30270, + "nodeType": "ParameterList", + "parameters": [], + "src": "5343:2:25" + }, + "returnParameters": { + "id": 30271, + "nodeType": "ParameterList", + "parameters": [], + "src": "5353:0:25" + }, + "scope": 30865, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 30670, + "nodeType": "FunctionDefinition", + "src": "7321:1879:25", + "nodes": [], + "body": { + "id": 30669, + "nodeType": "Block", + "src": "7393:1807:25", + "nodes": [], + "statements": [ + { + "expression": { + "id": 30466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 30460, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30457, + "src": "7404:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 30462, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30457, + "src": "7420:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "3130305f303030", + "id": 30463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7429:13:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000_by_1", + "typeString": "int_const 100000000000000000000000" + }, + "value": "100_000" + }, + { + "hexValue": "3130305f3030305f303030", + "id": 30464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7444:17:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000_by_1", + "typeString": "int_const 100000000000000000000000000" + }, + "value": "100_000_000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_100000000000000000000000_by_1", + "typeString": "int_const 100000000000000000000000" + }, + { + "typeIdentifier": "t_rational_100000000000000000000000000_by_1", + "typeString": "int_const 100000000000000000000000000" + } + ], + "id": 30461, + "name": "bound", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7670, + 7800 + ], + "referencedDeclaration": 7670, + "src": "7414:5:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 30465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7414:48:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7404:58:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 30467, + "nodeType": "ExpressionStatement", + "src": "7404:58:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 30473, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "7561:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7553:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30471, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7553:7:25", + "typeDescriptions": {} + } + }, + "id": 30474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7553:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 30475, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30457, + "src": "7571:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 30468, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "7533:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7544:8:25", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 28646, + "src": "7533:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 30476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7533:46:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 30477, + "nodeType": "ExpressionStatement", + "src": "7533:46:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 30483, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "7648:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7640:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30481, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7640:7:25", + "typeDescriptions": {} + } + }, + "id": 30484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7640:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30478, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1836, + "src": "7626:2:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$9315", + "typeString": "contract Vm" + } + }, + "id": 30480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7629:10:25", + "memberName": "startPrank", + "nodeType": "MemberAccess", + "referencedDeclaration": 9043, + "src": "7626:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 30485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7626:27:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30486, + "nodeType": "ExpressionStatement", + "src": "7626:27:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30492, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "7732:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7724:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7724:7:25", + "typeDescriptions": {} + } + }, + "id": 30493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7724:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 30496, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "7750:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7742:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30494, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7742:7:25", + "typeDescriptions": {} + } + }, + "id": 30497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7742:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 30498, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30457, + "src": "7756:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 30488, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "7704:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7708:15:25", + "memberName": "try_addInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 29684, + "src": "7704:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 30499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7704:60:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30487, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "7697:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7697:68:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30501, + "nodeType": "ExpressionStatement", + "src": "7697:68:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30507, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "7841:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7833:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7833:7:25", + "typeDescriptions": {} + } + }, + "id": 30508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7833:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30503, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "7811:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7815:17:25", + "memberName": "try_enableVesting", + "nodeType": "MemberAccess", + "referencedDeclaration": 29622, + "src": "7811:21:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7811:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30502, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "7804:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7804:47:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30511, + "nodeType": "ExpressionStatement", + "src": "7804:47:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30517, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "7930:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7922:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7922:7:25", + "typeDescriptions": {} + } + }, + "id": 30518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7922:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30513, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "7901:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7912:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "7901:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7901:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 30520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7937:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 30512, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "7892:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7892:47:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30522, + "nodeType": "ExpressionStatement", + "src": "7892:47:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30528, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "8020:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8012:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8012:7:25", + "typeDescriptions": {} + } + }, + "id": 30529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8012:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30524, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "7998:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8002:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "7998:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7998:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30523, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "7991:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7991:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30532, + "nodeType": "ExpressionStatement", + "src": "7991:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30538, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "8112:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8104:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8104:7:25", + "typeDescriptions": {} + } + }, + "id": 30539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8104:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30534, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "8083:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8094:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "8083:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8083:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30541, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30457, + "src": "8119:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3132", + "id": 30542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8129:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "8119:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 30544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8134:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "8119:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 30546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8139:7:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + ], + "id": 30533, + "name": "withinDiff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31357, + "src": "8072:10:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" + } + }, + "id": 30547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8072:75:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30548, + "nodeType": "ExpressionStatement", + "src": "8072:75:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "34", + "id": 30550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8190:7:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_2419200_by_1", + "typeString": "int_const 2419200" + }, + "value": "4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_2419200_by_1", + "typeString": "int_const 2419200" + } + ], + "id": 30549, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "8185:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8185:13:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30552, + "nodeType": "ExpressionStatement", + "src": "8185:13:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30558, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "8279:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8271:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8271:7:25", + "typeDescriptions": {} + } + }, + "id": 30559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8271:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30554, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "8257:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8261:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "8257:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8257:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30553, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "8250:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8250:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30562, + "nodeType": "ExpressionStatement", + "src": "8250:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30568, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "8371:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8363:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30566, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8363:7:25", + "typeDescriptions": {} + } + }, + "id": 30569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8363:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30564, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "8342:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8353:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "8342:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8342:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30571, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30457, + "src": "8378:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3230", + "id": 30572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8388:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "8378:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 30574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8393:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "8378:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 30576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8398:7:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + ], + "id": 30563, + "name": "withinDiff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31357, + "src": "8331:10:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" + } + }, + "id": 30577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8331:75:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30578, + "nodeType": "ExpressionStatement", + "src": "8331:75:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "34", + "id": 30580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8449:7:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_2419200_by_1", + "typeString": "int_const 2419200" + }, + "value": "4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_2419200_by_1", + "typeString": "int_const 2419200" + } + ], + "id": 30579, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "8444:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8444:13:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30582, + "nodeType": "ExpressionStatement", + "src": "8444:13:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30588, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "8538:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8530:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8530:7:25", + "typeDescriptions": {} + } + }, + "id": 30589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8530:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30584, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "8516:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8520:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "8516:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8516:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30583, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "8509:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8509:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30592, + "nodeType": "ExpressionStatement", + "src": "8509:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30598, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "8630:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8622:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30596, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8622:7:25", + "typeDescriptions": {} + } + }, + "id": 30599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8622:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30594, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "8601:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8612:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "8601:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8601:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30601, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30457, + "src": "8637:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3238", + "id": 30602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8647:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_28_by_1", + "typeString": "int_const 28" + }, + "value": "28" + }, + "src": "8637:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 30604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8652:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "8637:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 30606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8657:7:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + ], + "id": 30593, + "name": "withinDiff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31357, + "src": "8590:10:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" + } + }, + "id": 30607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8590:75:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30608, + "nodeType": "ExpressionStatement", + "src": "8590:75:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3132", + "id": 30610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8709:8:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_7257600_by_1", + "typeString": "int_const 7257600" + }, + "value": "12" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_7257600_by_1", + "typeString": "int_const 7257600" + } + ], + "id": 30609, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "8704:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8704:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30612, + "nodeType": "ExpressionStatement", + "src": "8704:14:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30618, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "8799:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8791:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30616, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8791:7:25", + "typeDescriptions": {} + } + }, + "id": 30619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8791:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30614, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "8777:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8781:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "8777:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8777:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30613, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "8770:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8770:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30622, + "nodeType": "ExpressionStatement", + "src": "8770:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30628, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "8891:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8883:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8883:7:25", + "typeDescriptions": {} + } + }, + "id": 30629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8883:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30624, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "8862:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8873:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "8862:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8862:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30631, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30457, + "src": "8898:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3532", + "id": 30632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8908:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_52_by_1", + "typeString": "int_const 52" + }, + "value": "52" + }, + "src": "8898:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 30634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8913:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "8898:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 30636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8918:7:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + ], + "id": 30623, + "name": "withinDiff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31357, + "src": "8851:10:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" + } + }, + "id": 30637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8851:75:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30638, + "nodeType": "ExpressionStatement", + "src": "8851:75:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3234", + "id": 30640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8970:8:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_14515200_by_1", + "typeString": "int_const 14515200" + }, + "value": "24" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_14515200_by_1", + "typeString": "int_const 14515200" + } + ], + "id": 30639, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "8965:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8965:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30642, + "nodeType": "ExpressionStatement", + "src": "8965:14:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30648, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "9060:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9052:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9052:7:25", + "typeDescriptions": {} + } + }, + "id": 30649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9052:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30644, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "9038:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9042:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "9038:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9038:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30643, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "9031:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9031:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30652, + "nodeType": "ExpressionStatement", + "src": "9031:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30658, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "9150:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9142:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9142:7:25", + "typeDescriptions": {} + } + }, + "id": 30659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9142:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30654, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "9121:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9132:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "9121:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9121:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 30661, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30457, + "src": "9157:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 30653, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "9112:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9112:53:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30663, + "nodeType": "ExpressionStatement", + "src": "9112:53:25" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 30664, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1836, + "src": "9178:2:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$9315", + "typeString": "contract Vm" + } + }, + "id": 30666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9181:9:25", + "memberName": "stopPrank", + "nodeType": "MemberAccess", + "referencedDeclaration": 9060, + "src": "9178:12:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 30667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9178:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30668, + "nodeType": "ExpressionStatement", + "src": "9178:14:25" + } + ] + }, + "documentation": { + "id": 30455, + "nodeType": "StructuredDocumentation", + "src": "7262:53:25", + "text": "@dev Verifies claim() state changes using fuzzing" + }, + "functionSelector": "1afcfe22", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "test_mainDeploymentTest_claim_fuzzing1", + "nameLocation": "7330:38:25", + "parameters": { + "id": 30458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30457, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "7377:7:25", + "nodeType": "VariableDeclaration", + "scope": 30670, + "src": "7369:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30456, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7369:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7368:17:25" + }, + "returnParameters": { + "id": 30459, + "nodeType": "ParameterList", + "parameters": [], + "src": "7393:0:25" + }, + "scope": 30865, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 30864, + "nodeType": "FunctionDefinition", + "src": "9264:2022:25", + "nodes": [], + "body": { + "id": 30863, + "nodeType": "Block", + "src": "9336:1950:25", + "nodes": [], + "statements": [ + { + "expression": { + "id": 30682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 30676, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30673, + "src": "9347:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 30678, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30673, + "src": "9363:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "3130305f303030", + "id": 30679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9372:13:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000_by_1", + "typeString": "int_const 100000000000000000000000" + }, + "value": "100_000" + }, + { + "hexValue": "3130305f3030305f303030", + "id": 30680, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:17:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000_by_1", + "typeString": "int_const 100000000000000000000000000" + }, + "value": "100_000_000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_100000000000000000000000_by_1", + "typeString": "int_const 100000000000000000000000" + }, + { + "typeIdentifier": "t_rational_100000000000000000000000000_by_1", + "typeString": "int_const 100000000000000000000000000" + } + ], + "id": 30677, + "name": "bound", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7670, + 7800 + ], + "referencedDeclaration": 7670, + "src": "9357:5:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 30681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9357:48:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9347:58:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 30683, + "nodeType": "ExpressionStatement", + "src": "9347:58:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 30689, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "9504:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9496:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30687, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9496:7:25", + "typeDescriptions": {} + } + }, + "id": 30690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9496:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30691, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30673, + "src": "9514:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 30692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9522:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "9514:9:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 30684, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "9476:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9487:8:25", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 28646, + "src": "9476:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 30694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9476:48:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 30695, + "nodeType": "ExpressionStatement", + "src": "9476:48:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30701, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "9600:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9592:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30699, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9592:7:25", + "typeDescriptions": {} + } + }, + "id": 30702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9592:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30697, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "9570:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9574:17:25", + "memberName": "try_enableVesting", + "nodeType": "MemberAccess", + "referencedDeclaration": 29622, + "src": "9570:21:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9570:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30696, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "9563:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9563:47:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30705, + "nodeType": "ExpressionStatement", + "src": "9563:47:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30711, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "9747:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9739:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9739:7:25", + "typeDescriptions": {} + } + }, + "id": 30712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9739:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 30715, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "9765:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9757:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9757:7:25", + "typeDescriptions": {} + } + }, + "id": 30716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9757:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 30717, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30673, + "src": "9771:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 30707, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "9719:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9723:15:25", + "memberName": "try_addInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 29684, + "src": "9719:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 30718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9719:60:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30706, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "9712:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9712:68:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30720, + "nodeType": "ExpressionStatement", + "src": "9712:68:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30726, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "9860:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9852:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30724, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9852:7:25", + "typeDescriptions": {} + } + }, + "id": 30727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9852:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 30730, + "name": "joe", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30900, + "src": "9878:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9870:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9870:7:25", + "typeDescriptions": {} + } + }, + "id": 30731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9870:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 30732, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30673, + "src": "9884:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 30722, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "9832:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9836:15:25", + "memberName": "try_addInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 29684, + "src": "9832:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 30733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9832:60:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30721, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "9825:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9825:68:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30735, + "nodeType": "ExpressionStatement", + "src": "9825:68:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30741, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "9973:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9965:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30739, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9965:7:25", + "typeDescriptions": {} + } + }, + "id": 30742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9965:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 30745, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "9991:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9983:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30743, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9983:7:25", + "typeDescriptions": {} + } + }, + "id": 30746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9983:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 30747, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30673, + "src": "9997:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 30737, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "9945:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9949:15:25", + "memberName": "try_addInvestor", + "nodeType": "MemberAccess", + "referencedDeclaration": 29684, + "src": "9945:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 30748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9945:60:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30736, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "9938:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9938:68:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30750, + "nodeType": "ExpressionStatement", + "src": "9938:68:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "32", + "id": 30752, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10086:7:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_1209600_by_1", + "typeString": "int_const 1209600" + }, + "value": "2" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1209600_by_1", + "typeString": "int_const 1209600" + } + ], + "id": 30751, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "10081:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10081:13:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30754, + "nodeType": "ExpressionStatement", + "src": "10081:13:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30760, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "10134:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10126:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10126:7:25", + "typeDescriptions": {} + } + }, + "id": 30761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10126:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30756, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "10112:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10116:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "10112:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10112:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30755, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "10105:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10105:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30764, + "nodeType": "ExpressionStatement", + "src": "10105:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30770, + "name": "jon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30906, + "src": "10261:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10253:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30768, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10253:7:25", + "typeDescriptions": {} + } + }, + "id": 30771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10253:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30766, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "10232:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10243:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "10232:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10232:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30773, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30673, + "src": "10269:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3132", + "id": 30774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10279:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "10269:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 30776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10284:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "10269:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 30778, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10268:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 30779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10290:7:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + ], + "id": 30765, + "name": "withinDiff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31357, + "src": "10221:10:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" + } + }, + "id": 30780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10221:77:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30781, + "nodeType": "ExpressionStatement", + "src": "10221:77:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3232", + "id": 30783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10368:8:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_13305600_by_1", + "typeString": "int_const 13305600" + }, + "value": "22" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_13305600_by_1", + "typeString": "int_const 13305600" + } + ], + "id": 30782, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "10363:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10363:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30785, + "nodeType": "ExpressionStatement", + "src": "10363:14:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30791, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "10471:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10463:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10463:7:25", + "typeDescriptions": {} + } + }, + "id": 30792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10463:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30787, + "name": "joe", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30900, + "src": "10449:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10453:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "10449:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10449:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30786, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "10442:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10442:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30795, + "nodeType": "ExpressionStatement", + "src": "10442:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30801, + "name": "joe", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30900, + "src": "10598:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10590:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30799, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10590:7:25", + "typeDescriptions": {} + } + }, + "id": 30802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10590:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30797, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "10569:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10580:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "10569:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10569:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30804, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30673, + "src": "10606:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3630", + "id": 30805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10616:2:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "10606:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 30807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10621:3:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "10606:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 30809, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10605:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 30810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10627:7:25", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + ], + "id": 30796, + "name": "withinDiff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31357, + "src": "10558:10:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" + } + }, + "id": 30811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10558:77:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30812, + "nodeType": "ExpressionStatement", + "src": "10558:77:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3230", + "id": 30814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10706:8:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_12096000_by_1", + "typeString": "int_const 12096000" + }, + "value": "20" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_12096000_by_1", + "typeString": "int_const 12096000" + } + ], + "id": 30813, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "10701:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10701:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30816, + "nodeType": "ExpressionStatement", + "src": "10701:14:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30822, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "10835:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10827:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30820, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10827:7:25", + "typeDescriptions": {} + } + }, + "id": 30823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10827:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30818, + "name": "joe", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30900, + "src": "10813:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10817:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "10813:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10813:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30817, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "10806:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10806:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30826, + "nodeType": "ExpressionStatement", + "src": "10806:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30832, + "name": "joe", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30900, + "src": "10949:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10941:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30830, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10941:7:25", + "typeDescriptions": {} + } + }, + "id": 30833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10941:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30828, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "10920:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10931:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "10920:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10920:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 30835, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30673, + "src": "10956:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 30827, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "10911:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10911:53:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30837, + "nodeType": "ExpressionStatement", + "src": "10911:53:25" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3532", + "id": 30839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11014:8:25", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_31449600_by_1", + "typeString": "int_const 31449600" + }, + "value": "52" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_31449600_by_1", + "typeString": "int_const 31449600" + } + ], + "id": 30838, + "name": "skip", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "11009:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 30840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11009:14:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30841, + "nodeType": "ExpressionStatement", + "src": "11009:14:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30847, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29786, + "src": "11139:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vesting_$28040", + "typeString": "contract Vesting" + } + ], + "id": 30846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11131:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11131:7:25", + "typeDescriptions": {} + } + }, + "id": 30848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11131:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30843, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "11117:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + }, + "id": 30844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11121:9:25", + "memberName": "try_claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 29768, + "src": "11117:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", + "typeString": "function (address) external returns (bool)" + } + }, + "id": 30849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11117:31:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30842, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "11110:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11110:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30851, + "nodeType": "ExpressionStatement", + "src": "11110:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 30857, + "name": "dev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30903, + "src": "11261:3:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Actor_$29769", + "typeString": "contract Actor" + } + ], + "id": 30856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11253:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 30855, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11253:7:25", + "typeDescriptions": {} + } + }, + "id": 30858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11253:12:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 30853, + "name": "proveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29789, + "src": "11232:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$26950", + "typeString": "contract TaxToken" + } + }, + "id": 30854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11243:9:25", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 28625, + "src": "11232:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 30859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11232:34:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 30860, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30673, + "src": "11268:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 30852, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1974, + 1999, + 2012, + 2028, + 2070, + 2112, + 2154, + 2191, + 2228, + 2265, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "11223:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 30861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11223:53:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30862, + "nodeType": "ExpressionStatement", + "src": "11223:53:25" + } + ] + }, + "documentation": { + "id": 30671, + "nodeType": "StructuredDocumentation", + "src": "9208:50:25", + "text": "@dev Verifies claim() edge cases using fuzzing" + }, + "functionSelector": "86ef399b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "test_mainDeploymentTest_claim_fuzzing2", + "nameLocation": "9273:38:25", + "parameters": { + "id": 30674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30673, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "9320:7:25", + "nodeType": "VariableDeclaration", + "scope": 30864, + "src": "9312:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9312:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9311:17:25" + }, + "returnParameters": { + "id": 30675, + "nodeType": "ParameterList", + "parameters": [], + "src": "9336:0:25" + }, + "scope": 30865, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 29780, + "name": "Utility", + "nameLocations": [ + "337:7:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 31415, + "src": "337:7:25" + }, + "id": 29781, + "nodeType": "InheritanceSpecifier", + "src": "337:7:25" + }, + { + "baseName": { + "id": 29782, + "name": "Test", + "nameLocations": [ + "346:4:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8158, + "src": "346:4:25" + }, + "id": 29783, + "nodeType": "InheritanceSpecifier", + "src": "346:4:25" + } + ], + "canonicalName": "MainDeploymentTest", + "contractDependencies": [ + 26950, + 28040, + 29769 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 30865, + 8158, + 1843, + 1840, + 8116, + 5144, + 4755, + 3207, + 2671, + 31415, + 1786 + ], + "name": "MainDeploymentTest", + "nameLocation": "315:18:25", + "scope": 30866, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 25 +} \ No newline at end of file diff --git a/out/Ownable.sol/Ownable.json b/out/Ownable.sol/Ownable.json index 112fe09..684009e 100644 --- a/out/Ownable.sol/Ownable.json +++ b/out/Ownable.sol/Ownable.json @@ -216,22 +216,22 @@ }, "ast": { "absolutePath": "src/extensions/Ownable.sol", - "id": 26292, + "id": 28271, "exportedSymbols": { "Context": [ - 26143 + 28122 ], "Ownable": [ - 26291 + 28270 ] }, "nodeType": "SourceUnit", - "src": "33:2640:18", + "src": "33:2640:20", "nodes": [ { - "id": 26145, + "id": 28124, "nodeType": "PragmaDirective", - "src": "33:23:18", + "src": "33:23:20", "nodes": [], "literals": [ "solidity", @@ -241,33 +241,33 @@ ] }, { - "id": 26146, + "id": 28125, "nodeType": "ImportDirective", - "src": "60:23:18", + "src": "60:23:20", "nodes": [], "absolutePath": "src/extensions/Context.sol", "file": "./Context.sol", "nameLocation": "-1:-1:-1", - "scope": 26292, - "sourceUnit": 26144, + "scope": 28271, + "sourceUnit": 28123, "symbolAliases": [], "unitAlias": "" }, { - "id": 26291, + "id": 28270, "nodeType": "ContractDefinition", - "src": "594:2079:18", + "src": "594:2079:20", "nodes": [ { - "id": 26151, + "id": 28130, "nodeType": "VariableDeclaration", - "src": "638:22:18", + "src": "638:22:20", "nodes": [], "constant": false, "mutability": "mutable", "name": "_owner", - "nameLocation": "654:6:18", - "scope": 26291, + "nameLocation": "654:6:20", + "scope": 28270, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -275,10 +275,10 @@ "typeString": "address" }, "typeName": { - "id": 26150, + "id": 28129, "name": "address", "nodeType": "ElementaryTypeName", - "src": "638:7:18", + "src": "638:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -288,15 +288,15 @@ "visibility": "private" }, { - "id": 26153, + "id": 28132, "nodeType": "VariableDeclaration", - "src": "667:30:18", + "src": "667:30:20", "nodes": [], "constant": false, "mutability": "mutable", "name": "_previousOwner", - "nameLocation": "683:14:18", - "scope": 26291, + "nameLocation": "683:14:20", + "scope": 28270, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -304,10 +304,10 @@ "typeString": "address" }, "typeName": { - "id": 26152, + "id": 28131, "name": "address", "nodeType": "ElementaryTypeName", - "src": "667:7:18", + "src": "667:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -317,15 +317,15 @@ "visibility": "private" }, { - "id": 26155, + "id": 28134, "nodeType": "VariableDeclaration", - "src": "704:25:18", + "src": "704:25:20", "nodes": [], "constant": false, "mutability": "mutable", "name": "_lockTime", - "nameLocation": "720:9:18", - "scope": 26291, + "nameLocation": "720:9:20", + "scope": 28270, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -333,10 +333,10 @@ "typeString": "uint256" }, "typeName": { - "id": 26154, + "id": 28133, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "704:7:18", + "src": "704:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -345,28 +345,28 @@ "visibility": "private" }, { - "id": 26161, + "id": 28140, "nodeType": "EventDefinition", - "src": "738:84:18", + "src": "738:84:20", "nodes": [], "anonymous": false, "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "name": "OwnershipTransferred", - "nameLocation": "744:20:18", + "nameLocation": "744:20:20", "parameters": { - "id": 26160, + "id": 28139, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 26157, + "id": 28136, "indexed": true, "mutability": "mutable", "name": "previousOwner", - "nameLocation": "781:13:18", + "nameLocation": "781:13:20", "nodeType": "VariableDeclaration", - "scope": 26161, - "src": "765:29:18", + "scope": 28140, + "src": "765:29:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -374,10 +374,10 @@ "typeString": "address" }, "typeName": { - "id": 26156, + "id": 28135, "name": "address", "nodeType": "ElementaryTypeName", - "src": "765:7:18", + "src": "765:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -388,14 +388,14 @@ }, { "constant": false, - "id": 26159, + "id": 28138, "indexed": true, "mutability": "mutable", "name": "newOwner", - "nameLocation": "812:8:18", + "nameLocation": "812:8:20", "nodeType": "VariableDeclaration", - "scope": 26161, - "src": "796:24:18", + "scope": 28140, + "src": "796:24:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -403,10 +403,10 @@ "typeString": "address" }, "typeName": { - "id": 26158, + "id": 28137, "name": "address", "nodeType": "ElementaryTypeName", - "src": "796:7:18", + "src": "796:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -416,34 +416,34 @@ "visibility": "internal" } ], - "src": "764:57:18" + "src": "764:57:20" } }, { - "id": 26183, + "id": 28162, "nodeType": "FunctionDefinition", - "src": "929:154:18", + "src": "929:154:20", "nodes": [], "body": { - "id": 26182, + "id": 28161, "nodeType": "Block", - "src": "944:139:18", + "src": "944:139:20", "nodes": [], "statements": [ { "assignments": [ - 26166 + 28145 ], "declarations": [ { "constant": false, - "id": 26166, + "id": 28145, "mutability": "mutable", "name": "msgSender", - "nameLocation": "963:9:18", + "nameLocation": "963:9:20", "nodeType": "VariableDeclaration", - "scope": 26182, - "src": "955:17:18", + "scope": 28161, + "src": "955:17:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -451,10 +451,10 @@ "typeString": "address" }, "typeName": { - "id": 26165, + "id": 28144, "name": "address", "nodeType": "ElementaryTypeName", - "src": "955:7:18", + "src": "955:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -464,23 +464,23 @@ "visibility": "internal" } ], - "id": 26169, + "id": 28148, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 26167, + "id": 28146, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26131, - "src": "975:10:18", + "referencedDeclaration": 28110, + "src": "975:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 26168, + "id": 28147, "isConstant": false, "isLValue": false, "isPure": false, @@ -489,7 +489,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "975:12:18", + "src": "975:12:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -497,22 +497,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "955:32:18" + "src": "955:32:20" }, { "expression": { - "id": 26172, + "id": 28151, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 26170, + "id": 28149, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26151, - "src": "998:6:18", + "referencedDeclaration": 28130, + "src": "998:6:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -521,26 +521,26 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 26171, + "id": 28150, "name": "msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26166, - "src": "1007:9:18", + "referencedDeclaration": 28145, + "src": "1007:9:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "998:18:18", + "src": "998:18:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 26173, + "id": 28152, "nodeType": "ExpressionStatement", - "src": "998:18:18" + "src": "998:18:20" }, { "eventCall": { @@ -549,14 +549,14 @@ "arguments": [ { "hexValue": "30", - "id": 26177, + "id": 28156, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1061:1:18", + "src": "1061:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -571,26 +571,26 @@ "typeString": "int_const 0" } ], - "id": 26176, + "id": 28155, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1053:7:18", + "src": "1053:7:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 26175, + "id": 28154, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1053:7:18", + "src": "1053:7:20", "typeDescriptions": {} } }, - "id": 26178, + "id": 28157, "isConstant": false, "isLValue": false, "isPure": true, @@ -599,7 +599,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1053:10:18", + "src": "1053:10:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -607,12 +607,12 @@ } }, { - "id": 26179, + "id": 28158, "name": "msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26166, - "src": "1065:9:18", + "referencedDeclaration": 28145, + "src": "1065:9:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -630,18 +630,18 @@ "typeString": "address" } ], - "id": 26174, + "id": 28153, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26161, - "src": "1032:20:18", + "referencedDeclaration": 28140, + "src": "1032:20:20", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 26180, + "id": 28159, "isConstant": false, "isLValue": false, "isPure": false, @@ -650,23 +650,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1032:43:18", + "src": "1032:43:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 26181, + "id": 28160, "nodeType": "EmitStatement", - "src": "1027:48:18" + "src": "1027:48:20" } ] }, "documentation": { - "id": 26162, + "id": 28141, "nodeType": "StructuredDocumentation", - "src": "830:93:18", + "src": "830:93:20", "text": " @dev Initializes the contract setting the deployer as the initial owner." }, "implemented": true, @@ -675,57 +675,57 @@ "name": "", "nameLocation": "-1:-1:-1", "parameters": { - "id": 26163, + "id": 28142, "nodeType": "ParameterList", "parameters": [], - "src": "941:2:18" + "src": "941:2:20" }, "returnParameters": { - "id": 26164, + "id": 28143, "nodeType": "ParameterList", "parameters": [], - "src": "944:0:18" + "src": "944:0:20" }, - "scope": 26291, + "scope": 28270, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { - "id": 26192, + "id": 28171, "nodeType": "FunctionDefinition", - "src": "1164:87:18", + "src": "1164:87:20", "nodes": [], "body": { - "id": 26191, + "id": 28170, "nodeType": "Block", - "src": "1219:32:18", + "src": "1219:32:20", "nodes": [], "statements": [ { "expression": { - "id": 26189, + "id": 28168, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26151, - "src": "1237:6:18", + "referencedDeclaration": 28130, + "src": "1237:6:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 26188, - "id": 26190, + "functionReturnParameters": 28167, + "id": 28169, "nodeType": "Return", - "src": "1230:13:18" + "src": "1230:13:20" } ] }, "documentation": { - "id": 26184, + "id": 28163, "nodeType": "StructuredDocumentation", - "src": "1091:67:18", + "src": "1091:67:20", "text": " @dev Returns the address of the current owner." }, "functionSelector": "8da5cb5b", @@ -733,26 +733,26 @@ "kind": "function", "modifiers": [], "name": "owner", - "nameLocation": "1173:5:18", + "nameLocation": "1173:5:20", "parameters": { - "id": 26185, + "id": 28164, "nodeType": "ParameterList", "parameters": [], - "src": "1178:2:18" + "src": "1178:2:20" }, "returnParameters": { - "id": 26188, + "id": 28167, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 26187, + "id": 28166, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 26192, - "src": "1210:7:18", + "scope": 28171, + "src": "1210:7:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -760,10 +760,10 @@ "typeString": "address" }, "typeName": { - "id": 26186, + "id": 28165, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1210:7:18", + "src": "1210:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -773,22 +773,22 @@ "visibility": "internal" } ], - "src": "1209:9:18" + "src": "1209:9:20" }, - "scope": 26291, + "scope": 28270, "stateMutability": "view", "virtual": true, "visibility": "public" }, { - "id": 26206, + "id": 28185, "nodeType": "ModifierDefinition", - "src": "1344:120:18", + "src": "1344:120:20", "nodes": [], "body": { - "id": 26205, + "id": 28184, "nodeType": "Block", - "src": "1365:99:18", + "src": "1365:99:20", "nodes": [], "statements": [ { @@ -799,7 +799,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 26200, + "id": 28179, "isConstant": false, "isLValue": false, "isPure": false, @@ -808,18 +808,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 26196, + "id": 28175, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26192, - "src": "1384:5:18", + "referencedDeclaration": 28171, + "src": "1384:5:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 26197, + "id": 28176, "isConstant": false, "isLValue": false, "isPure": false, @@ -828,7 +828,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1384:7:18", + "src": "1384:7:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -841,18 +841,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 26198, + "id": 28177, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26131, - "src": "1395:10:18", + "referencedDeclaration": 28110, + "src": "1395:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 26199, + "id": 28178, "isConstant": false, "isLValue": false, "isPure": false, @@ -861,14 +861,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1395:12:18", + "src": "1395:12:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1384:23:18", + "src": "1384:23:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -876,14 +876,14 @@ }, { "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 26201, + "id": 28180, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1409:34:18", + "src": "1409:34:20", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "typeString": "literal_string \"Ownable: caller is not the owner\"" @@ -902,7 +902,7 @@ "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], - "id": 26195, + "id": 28174, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -910,13 +910,13 @@ -18 ], "referencedDeclaration": -18, - "src": "1376:7:18", + "src": "1376:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 26202, + "id": 28181, "isConstant": false, "isLValue": false, "isPure": false, @@ -925,62 +925,62 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1376:68:18", + "src": "1376:68:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 26203, + "id": 28182, "nodeType": "ExpressionStatement", - "src": "1376:68:18" + "src": "1376:68:20" }, { - "id": 26204, + "id": 28183, "nodeType": "PlaceholderStatement", - "src": "1455:1:18" + "src": "1455:1:20" } ] }, "documentation": { - "id": 26193, + "id": 28172, "nodeType": "StructuredDocumentation", - "src": "1259:79:18", + "src": "1259:79:20", "text": " @dev Throws if called by any account other than the owner." }, "name": "onlyOwner", - "nameLocation": "1353:9:18", + "nameLocation": "1353:9:20", "parameters": { - "id": 26194, + "id": 28173, "nodeType": "ParameterList", "parameters": [], - "src": "1362:2:18" + "src": "1362:2:20" }, "virtual": false, "visibility": "internal" }, { - "id": 26228, + "id": 28207, "nodeType": "FunctionDefinition", - "src": "1815:148:18", + "src": "1815:148:20", "nodes": [], "body": { - "id": 26227, + "id": 28206, "nodeType": "Block", - "src": "1869:94:18", + "src": "1869:94:20", "nodes": [], "statements": [ { "eventCall": { "arguments": [ { - "id": 26213, + "id": 28192, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26151, - "src": "1906:6:18", + "referencedDeclaration": 28130, + "src": "1906:6:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -990,14 +990,14 @@ "arguments": [ { "hexValue": "30", - "id": 26216, + "id": 28195, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1922:1:18", + "src": "1922:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1012,26 +1012,26 @@ "typeString": "int_const 0" } ], - "id": 26215, + "id": 28194, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1914:7:18", + "src": "1914:7:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 26214, + "id": 28193, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1914:7:18", + "src": "1914:7:20", "typeDescriptions": {} } }, - "id": 26217, + "id": 28196, "isConstant": false, "isLValue": false, "isPure": true, @@ -1040,7 +1040,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1914:10:18", + "src": "1914:10:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1059,18 +1059,18 @@ "typeString": "address" } ], - "id": 26212, + "id": 28191, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26161, - "src": "1885:20:18", + "referencedDeclaration": 28140, + "src": "1885:20:20", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 26218, + "id": 28197, "isConstant": false, "isLValue": false, "isPure": false, @@ -1079,31 +1079,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1885:40:18", + "src": "1885:40:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 26219, + "id": 28198, "nodeType": "EmitStatement", - "src": "1880:45:18" + "src": "1880:45:20" }, { "expression": { - "id": 26225, + "id": 28204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 26220, + "id": 28199, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26151, - "src": "1936:6:18", + "referencedDeclaration": 28130, + "src": "1936:6:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1115,14 +1115,14 @@ "arguments": [ { "hexValue": "30", - "id": 26223, + "id": 28202, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1953:1:18", + "src": "1953:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1137,26 +1137,26 @@ "typeString": "int_const 0" } ], - "id": 26222, + "id": 28201, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1945:7:18", + "src": "1945:7:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 26221, + "id": 28200, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1945:7:18", + "src": "1945:7:20", "typeDescriptions": {} } }, - "id": 26224, + "id": 28203, "isConstant": false, "isLValue": false, "isPure": true, @@ -1165,29 +1165,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1945:10:18", + "src": "1945:10:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1936:19:18", + "src": "1936:19:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 26226, + "id": 28205, "nodeType": "ExpressionStatement", - "src": "1936:19:18" + "src": "1936:19:20" } ] }, "documentation": { - "id": 26207, + "id": 28186, "nodeType": "StructuredDocumentation", - "src": "1472:337:18", + "src": "1472:337:20", "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner." }, "functionSelector": "715018a6", @@ -1195,50 +1195,50 @@ "kind": "function", "modifiers": [ { - "id": 26210, + "id": 28189, "kind": "modifierInvocation", "modifierName": { - "id": 26209, + "id": 28188, "name": "onlyOwner", "nameLocations": [ - "1859:9:18" + "1859:9:20" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26206, - "src": "1859:9:18" + "referencedDeclaration": 28185, + "src": "1859:9:20" }, "nodeType": "ModifierInvocation", - "src": "1859:9:18" + "src": "1859:9:20" } ], "name": "renounceOwnership", - "nameLocation": "1824:17:18", + "nameLocation": "1824:17:20", "parameters": { - "id": 26208, + "id": 28187, "nodeType": "ParameterList", "parameters": [], - "src": "1841:2:18" + "src": "1841:2:20" }, "returnParameters": { - "id": 26211, + "id": 28190, "nodeType": "ParameterList", "parameters": [], - "src": "1869:0:18" + "src": "1869:0:20" }, - "scope": 26291, + "scope": 28270, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { - "id": 26256, + "id": 28235, "nodeType": "FunctionDefinition", - "src": "2118:244:18", + "src": "2118:244:20", "nodes": [], "body": { - "id": 26255, + "id": 28234, "nodeType": "Block", - "src": "2188:174:18", + "src": "2188:174:20", "nodes": [], "statements": [ { @@ -1249,18 +1249,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 26242, + "id": 28221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 26237, + "id": 28216, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26231, - "src": "2207:8:18", + "referencedDeclaration": 28210, + "src": "2207:8:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1272,14 +1272,14 @@ "arguments": [ { "hexValue": "30", - "id": 26240, + "id": 28219, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2227:1:18", + "src": "2227:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1294,26 +1294,26 @@ "typeString": "int_const 0" } ], - "id": 26239, + "id": 28218, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2219:7:18", + "src": "2219:7:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 26238, + "id": 28217, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2219:7:18", + "src": "2219:7:20", "typeDescriptions": {} } }, - "id": 26241, + "id": 28220, "isConstant": false, "isLValue": false, "isPure": true, @@ -1322,14 +1322,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2219:10:18", + "src": "2219:10:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2207:22:18", + "src": "2207:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1337,14 +1337,14 @@ }, { "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 26243, + "id": 28222, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2231:40:18", + "src": "2231:40:20", "typeDescriptions": { "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "typeString": "literal_string \"Ownable: new owner is the zero address\"" @@ -1363,7 +1363,7 @@ "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], - "id": 26236, + "id": 28215, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1371,13 +1371,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2199:7:18", + "src": "2199:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 26244, + "id": 28223, "isConstant": false, "isLValue": false, "isPure": false, @@ -1386,39 +1386,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2199:73:18", + "src": "2199:73:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 26245, + "id": 28224, "nodeType": "ExpressionStatement", - "src": "2199:73:18" + "src": "2199:73:20" }, { "eventCall": { "arguments": [ { - "id": 26247, + "id": 28226, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26151, - "src": "2309:6:18", + "referencedDeclaration": 28130, + "src": "2309:6:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 26248, + "id": 28227, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26231, - "src": "2317:8:18", + "referencedDeclaration": 28210, + "src": "2317:8:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1436,18 +1436,18 @@ "typeString": "address" } ], - "id": 26246, + "id": 28225, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26161, - "src": "2288:20:18", + "referencedDeclaration": 28140, + "src": "2288:20:20", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 26249, + "id": 28228, "isConstant": false, "isLValue": false, "isPure": false, @@ -1456,31 +1456,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2288:38:18", + "src": "2288:38:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 26250, + "id": 28229, "nodeType": "EmitStatement", - "src": "2283:43:18" + "src": "2283:43:20" }, { "expression": { - "id": 26253, + "id": 28232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 26251, + "id": 28230, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26151, - "src": "2337:6:18", + "referencedDeclaration": 28130, + "src": "2337:6:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1489,33 +1489,33 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 26252, + "id": 28231, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26231, - "src": "2346:8:18", + "referencedDeclaration": 28210, + "src": "2346:8:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2337:17:18", + "src": "2337:17:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 26254, + "id": 28233, "nodeType": "ExpressionStatement", - "src": "2337:17:18" + "src": "2337:17:20" } ] }, "documentation": { - "id": 26229, + "id": 28208, "nodeType": "StructuredDocumentation", - "src": "1971:141:18", + "src": "1971:141:20", "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." }, "functionSelector": "f2fde38b", @@ -1523,37 +1523,37 @@ "kind": "function", "modifiers": [ { - "id": 26234, + "id": 28213, "kind": "modifierInvocation", "modifierName": { - "id": 26233, + "id": 28212, "name": "onlyOwner", "nameLocations": [ - "2178:9:18" + "2178:9:20" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26206, - "src": "2178:9:18" + "referencedDeclaration": 28185, + "src": "2178:9:20" }, "nodeType": "ModifierInvocation", - "src": "2178:9:18" + "src": "2178:9:20" } ], "name": "transferOwnership", - "nameLocation": "2127:17:18", + "nameLocation": "2127:17:20", "parameters": { - "id": 26232, + "id": 28211, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 26231, + "id": 28210, "mutability": "mutable", "name": "newOwner", - "nameLocation": "2153:8:18", + "nameLocation": "2153:8:20", "nodeType": "VariableDeclaration", - "scope": 26256, - "src": "2145:16:18", + "scope": 28235, + "src": "2145:16:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1561,10 +1561,10 @@ "typeString": "address" }, "typeName": { - "id": 26230, + "id": 28209, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2145:7:18", + "src": "2145:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1574,44 +1574,44 @@ "visibility": "internal" } ], - "src": "2144:18:18" + "src": "2144:18:20" }, "returnParameters": { - "id": 26235, + "id": 28214, "nodeType": "ParameterList", "parameters": [], - "src": "2188:0:18" + "src": "2188:0:20" }, - "scope": 26291, + "scope": 28270, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { - "id": 26290, + "id": 28269, "nodeType": "FunctionDefinition", - "src": "2444:226:18", + "src": "2444:226:20", "nodes": [], "body": { - "id": 26289, + "id": 28268, "nodeType": "Block", - "src": "2497:173:18", + "src": "2497:173:20", "nodes": [], "statements": [ { "expression": { - "id": 26265, + "id": 28244, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 26263, + "id": 28242, "name": "_previousOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26153, - "src": "2508:14:18", + "referencedDeclaration": 28132, + "src": "2508:14:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1620,41 +1620,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 26264, + "id": 28243, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26151, - "src": "2525:6:18", + "referencedDeclaration": 28130, + "src": "2525:6:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2508:23:18", + "src": "2508:23:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 26266, + "id": 28245, "nodeType": "ExpressionStatement", - "src": "2508:23:18" + "src": "2508:23:20" }, { "expression": { - "id": 26272, + "id": 28251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 26267, + "id": 28246, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26151, - "src": "2542:6:18", + "referencedDeclaration": 28130, + "src": "2542:6:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1666,14 +1666,14 @@ "arguments": [ { "hexValue": "30", - "id": 26270, + "id": 28249, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2559:1:18", + "src": "2559:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1688,26 +1688,26 @@ "typeString": "int_const 0" } ], - "id": 26269, + "id": 28248, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2551:7:18", + "src": "2551:7:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 26268, + "id": 28247, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2551:7:18", + "src": "2551:7:20", "typeDescriptions": {} } }, - "id": 26271, + "id": 28250, "isConstant": false, "isLValue": false, "isPure": true, @@ -1716,37 +1716,37 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2551:10:18", + "src": "2551:10:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2542:19:18", + "src": "2542:19:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 26273, + "id": 28252, "nodeType": "ExpressionStatement", - "src": "2542:19:18" + "src": "2542:19:20" }, { "expression": { - "id": 26279, + "id": 28258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 26274, + "id": 28253, "name": "_lockTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26155, - "src": "2572:9:18", + "referencedDeclaration": 28134, + "src": "2572:9:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1759,33 +1759,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 26278, + "id": 28257, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 26275, + "id": 28254, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2584:5:18", + "src": "2584:5:20", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 26276, + "id": 28255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2590:9:18", + "memberLocation": "2590:9:20", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "2584:15:18", + "src": "2584:15:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1794,43 +1794,43 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 26277, + "id": 28256, "name": "time", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26258, - "src": "2602:4:18", + "referencedDeclaration": 28237, + "src": "2602:4:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2584:22:18", + "src": "2584:22:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2572:34:18", + "src": "2572:34:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 26280, + "id": 28259, "nodeType": "ExpressionStatement", - "src": "2572:34:18" + "src": "2572:34:20" }, { "eventCall": { "arguments": [ { - "id": 26282, + "id": 28261, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26151, - "src": "2643:6:18", + "referencedDeclaration": 28130, + "src": "2643:6:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1840,14 +1840,14 @@ "arguments": [ { "hexValue": "30", - "id": 26285, + "id": 28264, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2659:1:18", + "src": "2659:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1862,26 +1862,26 @@ "typeString": "int_const 0" } ], - "id": 26284, + "id": 28263, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2651:7:18", + "src": "2651:7:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 26283, + "id": 28262, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2651:7:18", + "src": "2651:7:20", "typeDescriptions": {} } }, - "id": 26286, + "id": 28265, "isConstant": false, "isLValue": false, "isPure": true, @@ -1890,7 +1890,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2651:10:18", + "src": "2651:10:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1909,18 +1909,18 @@ "typeString": "address" } ], - "id": 26281, + "id": 28260, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26161, - "src": "2622:20:18", + "referencedDeclaration": 28140, + "src": "2622:20:20", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 26287, + "id": 28266, "isConstant": false, "isLValue": false, "isPure": false, @@ -1929,16 +1929,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2622:40:18", + "src": "2622:40:20", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 26288, + "id": 28267, "nodeType": "EmitStatement", - "src": "2617:45:18" + "src": "2617:45:20" } ] }, @@ -1947,37 +1947,37 @@ "kind": "function", "modifiers": [ { - "id": 26261, + "id": 28240, "kind": "modifierInvocation", "modifierName": { - "id": 26260, + "id": 28239, "name": "onlyOwner", "nameLocations": [ - "2487:9:18" + "2487:9:20" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26206, - "src": "2487:9:18" + "referencedDeclaration": 28185, + "src": "2487:9:20" }, "nodeType": "ModifierInvocation", - "src": "2487:9:18" + "src": "2487:9:20" } ], "name": "lock", - "nameLocation": "2453:4:18", + "nameLocation": "2453:4:20", "parameters": { - "id": 26259, + "id": 28238, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 26258, + "id": 28237, "mutability": "mutable", "name": "time", - "nameLocation": "2466:4:18", + "nameLocation": "2466:4:20", "nodeType": "VariableDeclaration", - "scope": 26290, - "src": "2458:12:18", + "scope": 28269, + "src": "2458:12:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1985,10 +1985,10 @@ "typeString": "uint256" }, "typeName": { - "id": 26257, + "id": 28236, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2458:7:18", + "src": "2458:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1997,15 +1997,15 @@ "visibility": "internal" } ], - "src": "2457:14:18" + "src": "2457:14:20" }, "returnParameters": { - "id": 26262, + "id": 28241, "nodeType": "ParameterList", "parameters": [], - "src": "2497:0:18" + "src": "2497:0:20" }, - "scope": 26291, + "scope": 28270, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" @@ -2015,41 +2015,41 @@ "baseContracts": [ { "baseName": { - "id": 26148, + "id": 28127, "name": "Context", "nameLocations": [ - "623:7:18" + "623:7:20" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26143, - "src": "623:7:18" + "referencedDeclaration": 28122, + "src": "623:7:20" }, - "id": 26149, + "id": 28128, "nodeType": "InheritanceSpecifier", - "src": "623:7:18" + "src": "623:7:20" } ], "canonicalName": "Ownable", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 26147, + "id": 28126, "nodeType": "StructuredDocumentation", - "src": "87:505:18", + "src": "87:505:20", "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." }, "fullyImplemented": true, "linearizedBaseContracts": [ - 26291, - 26143 + 28270, + 28122 ], "name": "Ownable", - "nameLocation": "612:7:18", - "scope": 26292, + "nameLocation": "612:7:20", + "scope": 28271, "usedErrors": [] } ], "license": "MIT" }, - "id": 18 + "id": 20 } \ No newline at end of file diff --git a/out/SafeMath.sol/SafeMath.json b/out/SafeMath.sol/SafeMath.json new file mode 100644 index 0000000..5b5d4d4 --- /dev/null +++ b/out/SafeMath.sol/SafeMath.json @@ -0,0 +1,3846 @@ +{ + "abi": [], + "bytecode": { + "object": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d4f2e9bae731fe8a24f4195d21f96a61c68f522850660a672a211ba030174cbc64736f6c63430008110033", + "sourceMap": "497:6409:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;497:6409:27;;;;;;;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d4f2e9bae731fe8a24f4195d21f96a61c68f522850660a672a211ba030174cbc64736f6c63430008110033", + "sourceMap": "497:6409:27:-:0;;;;;;;;", + "linkReferences": {} + }, + "methodIdentifiers": {}, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations. NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler now has built in overflow checking.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/libraries/SafeMath.sol\":{\"keccak256\":\"0x9ea9ed8355940fc0c1cec0f9a75b1cb108d7092cbb888ab0a5974a3280022dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83e718c16af82ff4ff615290bcd767c2e39b744d394d50c535a786c7ae61bf83\",\"dweb:/ipfs/QmSu6XngtujDLWtwpxp9ev43d3yW7cDwYKBpJPeMvUvjQf\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/libraries/SafeMath.sol": "SafeMath" + }, + "libraries": {} + }, + "sources": { + "src/libraries/SafeMath.sol": { + "keccak256": "0x9ea9ed8355940fc0c1cec0f9a75b1cb108d7092cbb888ab0a5974a3280022dfc", + "urls": [ + "bzz-raw://83e718c16af82ff4ff615290bcd767c2e39b744d394d50c535a786c7ae61bf83", + "dweb:/ipfs/QmSu6XngtujDLWtwpxp9ev43d3yW7cDwYKBpJPeMvUvjQf" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/libraries/SafeMath.sol", + "id": 30201, + "exportedSymbols": { + "SafeMath": [ + 30200 + ] + }, + "nodeType": "SourceUnit", + "src": "110:6796:27", + "nodes": [ + { + "id": 29890, + "nodeType": "PragmaDirective", + "src": "110:23:27", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ] + }, + { + "id": 30200, + "nodeType": "ContractDefinition", + "src": "497:6409:27", + "nodes": [ + { + "id": 29923, + "nodeType": "FunctionDefinition", + "src": "662:222:27", + "nodes": [], + "body": { + "id": 29922, + "nodeType": "Block", + "src": "738:146:27", + "nodes": [], + "statements": [ + { + "id": 29921, + "nodeType": "UncheckedBlock", + "src": "749:128:27", + "statements": [ + { + "assignments": [ + 29904 + ], + "declarations": [ + { + "constant": false, + "id": 29904, + "mutability": "mutable", + "name": "c", + "nameLocation": "782:1:27", + "nodeType": "VariableDeclaration", + "scope": 29921, + "src": "774:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29903, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "774:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 29908, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 29907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 29905, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29894, + "src": "786:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 29906, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29896, + "src": "790:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "786:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "774:17:27" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 29911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 29909, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29904, + "src": "810:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 29910, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29894, + "src": "814:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "810:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 29916, + "nodeType": "IfStatement", + "src": "806:28:27", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 29912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "825:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 29913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "832:1:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 29914, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "824:10:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 29902, + "id": 29915, + "nodeType": "Return", + "src": "817:17:27" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 29917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "857:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 29918, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29904, + "src": "863:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 29919, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "856:9:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 29902, + "id": 29920, + "nodeType": "Return", + "src": "849:16:27" + } + ] + } + ] + }, + "documentation": { + "id": 29892, + "nodeType": "StructuredDocumentation", + "src": "521:135:27", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nameLocation": "671:6:27", + "parameters": { + "id": 29897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29894, + "mutability": "mutable", + "name": "a", + "nameLocation": "686:1:27", + "nodeType": "VariableDeclaration", + "scope": 29923, + "src": "678:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "678:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29896, + "mutability": "mutable", + "name": "b", + "nameLocation": "697:1:27", + "nodeType": "VariableDeclaration", + "scope": 29923, + "src": "689:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "689:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "677:22:27" + }, + "returnParameters": { + "id": 29902, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29899, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29923, + "src": "723:4:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29898, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "723:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29901, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29923, + "src": "729:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29900, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "729:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "722:15:27" + }, + "scope": 30200, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 29951, + "nodeType": "FunctionDefinition", + "src": "1036:194:27", + "nodes": [], + "body": { + "id": 29950, + "nodeType": "Block", + "src": "1112:118:27", + "nodes": [], + "statements": [ + { + "id": 29949, + "nodeType": "UncheckedBlock", + "src": "1123:100:27", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 29937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 29935, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29928, + "src": "1152:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 29936, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29926, + "src": "1156:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1152:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 29942, + "nodeType": "IfStatement", + "src": "1148:28:27", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 29938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1167:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 29939, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1174:1:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 29940, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1166:10:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 29934, + "id": 29941, + "nodeType": "Return", + "src": "1159:17:27" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 29943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1199:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 29946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 29944, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29926, + "src": "1205:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 29945, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29928, + "src": "1209:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1205:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 29947, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1198:13:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 29934, + "id": 29948, + "nodeType": "Return", + "src": "1191:20:27" + } + ] + } + ] + }, + "documentation": { + "id": 29924, + "nodeType": "StructuredDocumentation", + "src": "892:138:27", + "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nameLocation": "1045:6:27", + "parameters": { + "id": 29929, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29926, + "mutability": "mutable", + "name": "a", + "nameLocation": "1060:1:27", + "nodeType": "VariableDeclaration", + "scope": 29951, + "src": "1052:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29925, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1052:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29928, + "mutability": "mutable", + "name": "b", + "nameLocation": "1071:1:27", + "nodeType": "VariableDeclaration", + "scope": 29951, + "src": "1063:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29927, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1063:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1051:22:27" + }, + "returnParameters": { + "id": 29934, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29931, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29951, + "src": "1097:4:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29930, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1097:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29933, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29951, + "src": "1103:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29932, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1103:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1096:15:27" + }, + "scope": 30200, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 29993, + "nodeType": "FunctionDefinition", + "src": "1385:503:27", + "nodes": [], + "body": { + "id": 29992, + "nodeType": "Block", + "src": "1461:427:27", + "nodes": [], + "statements": [ + { + "id": 29991, + "nodeType": "UncheckedBlock", + "src": "1472:409:27", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 29965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 29963, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29954, + "src": "1734:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 29964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1739:1:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1734:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 29970, + "nodeType": "IfStatement", + "src": "1730:28:27", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 29966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1750:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 29967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1756:1:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 29968, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1749:9:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 29962, + "id": 29969, + "nodeType": "Return", + "src": "1742:16:27" + } + }, + { + "assignments": [ + 29972 + ], + "declarations": [ + { + "constant": false, + "id": 29972, + "mutability": "mutable", + "name": "c", + "nameLocation": "1781:1:27", + "nodeType": "VariableDeclaration", + "scope": 29991, + "src": "1773:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29971, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1773:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 29976, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 29975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 29973, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29954, + "src": "1785:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 29974, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29956, + "src": "1789:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1785:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1773:17:27" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 29981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 29979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 29977, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29972, + "src": "1809:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 29978, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29954, + "src": "1813:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1809:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 29980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29956, + "src": "1818:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1809:10:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 29986, + "nodeType": "IfStatement", + "src": "1805:33:27", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 29982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1829:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 29983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1836:1:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 29984, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1828:10:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 29962, + "id": 29985, + "nodeType": "Return", + "src": "1821:17:27" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 29987, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1861:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 29988, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29972, + "src": "1867:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 29989, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1860:9:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 29962, + "id": 29990, + "nodeType": "Return", + "src": "1853:16:27" + } + ] + } + ] + }, + "documentation": { + "id": 29952, + "nodeType": "StructuredDocumentation", + "src": "1238:141:27", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nameLocation": "1394:6:27", + "parameters": { + "id": 29957, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29954, + "mutability": "mutable", + "name": "a", + "nameLocation": "1409:1:27", + "nodeType": "VariableDeclaration", + "scope": 29993, + "src": "1401:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29953, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1401:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29956, + "mutability": "mutable", + "name": "b", + "nameLocation": "1420:1:27", + "nodeType": "VariableDeclaration", + "scope": 29993, + "src": "1412:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1412:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1400:22:27" + }, + "returnParameters": { + "id": 29962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29959, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29993, + "src": "1446:4:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 29958, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1446:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29961, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 29993, + "src": "1452:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1452:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1445:15:27" + }, + "scope": 30200, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 30021, + "nodeType": "FunctionDefinition", + "src": "2044:195:27", + "nodes": [], + "body": { + "id": 30020, + "nodeType": "Block", + "src": "2120:119:27", + "nodes": [], + "statements": [ + { + "id": 30019, + "nodeType": "UncheckedBlock", + "src": "2131:101:27", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30005, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29998, + "src": "2160:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 30006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2165:1:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2160:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 30012, + "nodeType": "IfStatement", + "src": "2156:29:27", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 30008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2176:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 30009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2183:1:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 30010, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2175:10:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 30004, + "id": 30011, + "nodeType": "Return", + "src": "2168:17:27" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 30013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2208:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30014, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29996, + "src": "2214:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 30015, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29998, + "src": "2218:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2214:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 30017, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2207:13:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 30004, + "id": 30018, + "nodeType": "Return", + "src": "2200:20:27" + } + ] + } + ] + }, + "documentation": { + "id": 29994, + "nodeType": "StructuredDocumentation", + "src": "1896:142:27", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nameLocation": "2053:6:27", + "parameters": { + "id": 29999, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29996, + "mutability": "mutable", + "name": "a", + "nameLocation": "2068:1:27", + "nodeType": "VariableDeclaration", + "scope": 30021, + "src": "2060:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29995, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2060:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29998, + "mutability": "mutable", + "name": "b", + "nameLocation": "2079:1:27", + "nodeType": "VariableDeclaration", + "scope": 30021, + "src": "2071:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29997, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2071:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2059:22:27" + }, + "returnParameters": { + "id": 30004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30001, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 30021, + "src": "2105:4:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 30000, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2105:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30003, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 30021, + "src": "2111:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2111:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2104:15:27" + }, + "scope": 30200, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 30049, + "nodeType": "FunctionDefinition", + "src": "2405:195:27", + "nodes": [], + "body": { + "id": 30048, + "nodeType": "Block", + "src": "2481:119:27", + "nodes": [], + "statements": [ + { + "id": 30047, + "nodeType": "UncheckedBlock", + "src": "2492:101:27", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30033, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30026, + "src": "2521:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 30034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2526:1:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2521:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 30040, + "nodeType": "IfStatement", + "src": "2517:29:27", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 30036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2537:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 30037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2544:1:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 30038, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2536:10:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 30032, + "id": 30039, + "nodeType": "Return", + "src": "2529:17:27" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 30041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2569:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30042, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30024, + "src": "2575:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 30043, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30026, + "src": "2579:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2575:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 30045, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2568:13:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 30032, + "id": 30046, + "nodeType": "Return", + "src": "2561:20:27" + } + ] + } + ] + }, + "documentation": { + "id": 30022, + "nodeType": "StructuredDocumentation", + "src": "2247:152:27", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "2414:6:27", + "parameters": { + "id": 30027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30024, + "mutability": "mutable", + "name": "a", + "nameLocation": "2429:1:27", + "nodeType": "VariableDeclaration", + "scope": 30049, + "src": "2421:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2421:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30026, + "mutability": "mutable", + "name": "b", + "nameLocation": "2440:1:27", + "nodeType": "VariableDeclaration", + "scope": 30049, + "src": "2432:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2432:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2420:22:27" + }, + "returnParameters": { + "id": 30032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30029, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 30049, + "src": "2466:4:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 30028, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2466:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30031, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 30049, + "src": "2472:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2472:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2465:15:27" + }, + "scope": 30200, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 30064, + "nodeType": "FunctionDefinition", + "src": "2847:98:27", + "nodes": [], + "body": { + "id": 30063, + "nodeType": "Block", + "src": "2914:31:27", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30059, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30052, + "src": "2932:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 30060, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30054, + "src": "2936:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2932:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 30058, + "id": 30062, + "nodeType": "Return", + "src": "2925:12:27" + } + ] + }, + "documentation": { + "id": 30050, + "nodeType": "StructuredDocumentation", + "src": "2608:233:27", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nameLocation": "2856:3:27", + "parameters": { + "id": 30055, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30052, + "mutability": "mutable", + "name": "a", + "nameLocation": "2868:1:27", + "nodeType": "VariableDeclaration", + "scope": 30064, + "src": "2860:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30051, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2860:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30054, + "mutability": "mutable", + "name": "b", + "nameLocation": "2879:1:27", + "nodeType": "VariableDeclaration", + "scope": 30064, + "src": "2871:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30053, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2871:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2859:22:27" + }, + "returnParameters": { + "id": 30058, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30057, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 30064, + "src": "2905:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30056, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2905:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2904:9:27" + }, + "scope": 30200, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 30079, + "nodeType": "FunctionDefinition", + "src": "3228:98:27", + "nodes": [], + "body": { + "id": 30078, + "nodeType": "Block", + "src": "3295:31:27", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30074, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30067, + "src": "3313:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 30075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30069, + "src": "3317:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3313:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 30073, + "id": 30077, + "nodeType": "Return", + "src": "3306:12:27" + } + ] + }, + "documentation": { + "id": 30065, + "nodeType": "StructuredDocumentation", + "src": "2953:269:27", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nameLocation": "3237:3:27", + "parameters": { + "id": 30070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30067, + "mutability": "mutable", + "name": "a", + "nameLocation": "3249:1:27", + "nodeType": "VariableDeclaration", + "scope": 30079, + "src": "3241:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3241:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30069, + "mutability": "mutable", + "name": "b", + "nameLocation": "3260:1:27", + "nodeType": "VariableDeclaration", + "scope": 30079, + "src": "3252:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3252:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3240:22:27" + }, + "returnParameters": { + "id": 30073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30072, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 30079, + "src": "3286:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3286:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3285:9:27" + }, + "scope": 30200, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 30094, + "nodeType": "FunctionDefinition", + "src": "3585:98:27", + "nodes": [], + "body": { + "id": 30093, + "nodeType": "Block", + "src": "3652:31:27", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30089, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30082, + "src": "3670:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 30090, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30084, + "src": "3674:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3670:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 30088, + "id": 30092, + "nodeType": "Return", + "src": "3663:12:27" + } + ] + }, + "documentation": { + "id": 30080, + "nodeType": "StructuredDocumentation", + "src": "3334:245:27", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nameLocation": "3594:3:27", + "parameters": { + "id": 30085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30082, + "mutability": "mutable", + "name": "a", + "nameLocation": "3606:1:27", + "nodeType": "VariableDeclaration", + "scope": 30094, + "src": "3598:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3598:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30084, + "mutability": "mutable", + "name": "b", + "nameLocation": "3617:1:27", + "nodeType": "VariableDeclaration", + "scope": 30094, + "src": "3609:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30083, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3609:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3597:22:27" + }, + "returnParameters": { + "id": 30088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30087, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 30094, + "src": "3643:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30086, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3643:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3642:9:27" + }, + "scope": 30200, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 30109, + "nodeType": "FunctionDefinition", + "src": "3984:98:27", + "nodes": [], + "body": { + "id": 30108, + "nodeType": "Block", + "src": "4051:31:27", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30104, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30097, + "src": "4069:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 30105, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30099, + "src": "4073:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4069:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 30103, + "id": 30107, + "nodeType": "Return", + "src": "4062:12:27" + } + ] + }, + "documentation": { + "id": 30095, + "nodeType": "StructuredDocumentation", + "src": "3691:287:27", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator.\n Requirements:\n - The divisor cannot be zero." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nameLocation": "3993:3:27", + "parameters": { + "id": 30100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30097, + "mutability": "mutable", + "name": "a", + "nameLocation": "4005:1:27", + "nodeType": "VariableDeclaration", + "scope": 30109, + "src": "3997:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30096, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3997:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30099, + "mutability": "mutable", + "name": "b", + "nameLocation": "4016:1:27", + "nodeType": "VariableDeclaration", + "scope": 30109, + "src": "4008:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30098, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4008:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3996:22:27" + }, + "returnParameters": { + "id": 30103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30102, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 30109, + "src": "4042:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30101, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4042:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4041:9:27" + }, + "scope": 30200, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 30124, + "nodeType": "FunctionDefinition", + "src": "4549:98:27", + "nodes": [], + "body": { + "id": 30123, + "nodeType": "Block", + "src": "4616:31:27", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30119, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30112, + "src": "4634:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 30120, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30114, + "src": "4638:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4634:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 30118, + "id": 30122, + "nodeType": "Return", + "src": "4627:12:27" + } + ] + }, + "documentation": { + "id": 30110, + "nodeType": "StructuredDocumentation", + "src": "4090:453:27", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nameLocation": "4558:3:27", + "parameters": { + "id": 30115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30112, + "mutability": "mutable", + "name": "a", + "nameLocation": "4570:1:27", + "nodeType": "VariableDeclaration", + "scope": 30124, + "src": "4562:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4562:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30114, + "mutability": "mutable", + "name": "b", + "nameLocation": "4581:1:27", + "nodeType": "VariableDeclaration", + "scope": 30124, + "src": "4573:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4573:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4561:22:27" + }, + "returnParameters": { + "id": 30118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30117, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 30124, + "src": "4607:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4607:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4606:9:27" + }, + "scope": 30200, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 30149, + "nodeType": "FunctionDefinition", + "src": "5126:206:27", + "nodes": [], + "body": { + "id": 30148, + "nodeType": "Block", + "src": "5221:111:27", + "nodes": [], + "statements": [ + { + "id": 30147, + "nodeType": "UncheckedBlock", + "src": "5232:93:27", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30137, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30129, + "src": "5265:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 30138, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30127, + "src": "5270:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5265:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 30140, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30131, + "src": "5273:12:27", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 30136, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5257:7:27", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 30141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5257:29:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30142, + "nodeType": "ExpressionStatement", + "src": "5257:29:27" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30143, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30127, + "src": "5308:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 30144, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30129, + "src": "5312:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5308:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 30135, + "id": 30146, + "nodeType": "Return", + "src": "5301:12:27" + } + ] + } + ] + }, + "documentation": { + "id": 30125, + "nodeType": "StructuredDocumentation", + "src": "4655:465:27", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nameLocation": "5135:3:27", + "parameters": { + "id": 30132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30127, + "mutability": "mutable", + "name": "a", + "nameLocation": "5147:1:27", + "nodeType": "VariableDeclaration", + "scope": 30149, + "src": "5139:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5139:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30129, + "mutability": "mutable", + "name": "b", + "nameLocation": "5158:1:27", + "nodeType": "VariableDeclaration", + "scope": 30149, + "src": "5150:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5150:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30131, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "5175:12:27", + "nodeType": "VariableDeclaration", + "scope": 30149, + "src": "5161:26:27", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 30130, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5161:6:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5138:50:27" + }, + "returnParameters": { + "id": 30135, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30134, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 30149, + "src": "5212:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30133, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5212:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5211:9:27" + }, + "scope": 30200, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 30174, + "nodeType": "FunctionDefinition", + "src": "5830:205:27", + "nodes": [], + "body": { + "id": 30173, + "nodeType": "Block", + "src": "5925:110:27", + "nodes": [], + "statements": [ + { + "id": 30172, + "nodeType": "UncheckedBlock", + "src": "5936:92:27", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30162, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30154, + "src": "5969:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 30163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5973:1:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5969:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 30165, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30156, + "src": "5976:12:27", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 30161, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5961:7:27", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 30166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5961:28:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30167, + "nodeType": "ExpressionStatement", + "src": "5961:28:27" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30168, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30152, + "src": "6011:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 30169, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30154, + "src": "6015:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6011:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 30160, + "id": 30171, + "nodeType": "Return", + "src": "6004:12:27" + } + ] + } + ] + }, + "documentation": { + "id": 30150, + "nodeType": "StructuredDocumentation", + "src": "5340:484:27", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nameLocation": "5839:3:27", + "parameters": { + "id": 30157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30152, + "mutability": "mutable", + "name": "a", + "nameLocation": "5851:1:27", + "nodeType": "VariableDeclaration", + "scope": 30174, + "src": "5843:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5843:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30154, + "mutability": "mutable", + "name": "b", + "nameLocation": "5862:1:27", + "nodeType": "VariableDeclaration", + "scope": 30174, + "src": "5854:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5854:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30156, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "5879:12:27", + "nodeType": "VariableDeclaration", + "scope": 30174, + "src": "5865:26:27", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 30155, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5865:6:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5842:50:27" + }, + "returnParameters": { + "id": 30160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30159, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 30174, + "src": "5916:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5916:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5915:9:27" + }, + "scope": 30200, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 30199, + "nodeType": "FunctionDefinition", + "src": "6698:205:27", + "nodes": [], + "body": { + "id": 30198, + "nodeType": "Block", + "src": "6793:110:27", + "nodes": [], + "statements": [ + { + "id": 30197, + "nodeType": "UncheckedBlock", + "src": "6804:92:27", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30187, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30179, + "src": "6837:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 30188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6841:1:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6837:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 30190, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30181, + "src": "6844:12:27", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 30186, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6829:7:27", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 30191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6829:28:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30192, + "nodeType": "ExpressionStatement", + "src": "6829:28:27" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 30195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30193, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30177, + "src": "6879:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 30194, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30179, + "src": "6883:1:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6879:5:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 30185, + "id": 30196, + "nodeType": "Return", + "src": "6872:12:27" + } + ] + } + ] + }, + "documentation": { + "id": 30175, + "nodeType": "StructuredDocumentation", + "src": "6043:649:27", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nameLocation": "6707:3:27", + "parameters": { + "id": 30182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30177, + "mutability": "mutable", + "name": "a", + "nameLocation": "6719:1:27", + "nodeType": "VariableDeclaration", + "scope": 30199, + "src": "6711:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6711:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30179, + "mutability": "mutable", + "name": "b", + "nameLocation": "6730:1:27", + "nodeType": "VariableDeclaration", + "scope": 30199, + "src": "6722:9:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30178, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6722:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30181, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "6747:12:27", + "nodeType": "VariableDeclaration", + "scope": 30199, + "src": "6733:26:27", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 30180, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6733:6:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6710:50:27" + }, + "returnParameters": { + "id": 30185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 30184, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 30199, + "src": "6784:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6784:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6783:9:27" + }, + "scope": 30200, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "SafeMath", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 29891, + "nodeType": "StructuredDocumentation", + "src": "294:201:27", + "text": " @dev Wrappers over Solidity's arithmetic operations.\n NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler\n now has built in overflow checking." + }, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 30200 + ], + "name": "SafeMath", + "nameLocation": "505:8:27", + "scope": 30201, + "usedErrors": [] + } + ], + "license": "MIT" + }, + "id": 27 +} \ No newline at end of file diff --git a/out/StdError.sol/stdError.json b/out/StdError.sol/stdError.json index 36dfa1f..92e4127 100644 --- a/out/StdError.sol/stdError.json +++ b/out/StdError.sol/stdError.json @@ -125,7 +125,7 @@ }, "deployedBytecode": { "object": "0x730000000000000000000000000000000000000000301460806040526004361061009d5760003560e01c8063986c5f6811610070578063986c5f68146100d8578063b22dc54d146100e0578063b67689da146100e8578063d160e4de146100f0578063fa784a44146100f857600080fd5b806305ee8612146100a257806310332977146100c05780631de45560146100c85780638995290f146100d0575b600080fd5b6100aa610100565b6040516100b791906101cb565b60405180910390f35b6100aa61013b565b6100aa61014d565b6100aa61015f565b6100aa610171565b6100aa610183565b6100aa610195565b6100aa6101a7565b6100aa6101b9565b604051603260248201526044015b60408051601f198184030181529190526020810180516001600160e01b0316634e487b7160e01b17905281565b6040516001602482015260440161010e565b6040516021602482015260440161010e565b6040516011602482015260440161010e565b6040516041602482015260440161010e565b6040516031602482015260440161010e565b6040516051602482015260440161010e565b6040516022602482015260440161010e565b6040516012602482015260440161010e565b600060208083528351808285015260005b818110156101f8578581018301518582016040015282016101dc565b506000604082860101526040601f19601f830116850101925050509291505056fea264697066735822122035cba101b650f66ba50a55224c6366c3102f19728c9336b26b1995308dd6fbe264736f6c63430008110033", - "sourceMap": "162:850:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:86;;;:::i;461:91::-;;;:::i;277:87::-;;;:::i;831:88::-;;;:::i;654:80::-;;;:::i;925:84::-;;;:::i;558:90::-;;;:::i;370:85::-;;;:::i;740:::-;778:47;;820:4;778:47;;;726:36:23;699:18;;778:47:6;;;;-1:-1:-1;;778:47:6;;;;;;;;;;;;;;-1:-1:-1;;;;;778:47:6;-1:-1:-1;;;778:47:6;;;740:85;:::o;185:86::-;224:47;;266:4;224:47;;;726:36:23;699:18;;224:47:6;573:195:23;461:91:6;505:47;;547:4;505:47;;;726:36:23;699:18;;505:47:6;573:195:23;277:87:6;317:47;;359:4;317:47;;;726:36:23;699:18;;317:47:6;573:195:23;831:88:6;872:47;;914:4;872:47;;;726:36:23;699:18;;872:47:6;573:195:23;654:80:6;687:47;;729:4;687:47;;;726:36:23;699:18;;687:47:6;573:195:23;925:84:6;962:47;;1004:4;962:47;;;726:36:23;699:18;;962:47:6;573:195:23;558:90:6;601:47;;643:4;601:47;;;726:36:23;699:18;;601:47:6;573:195:23;370:85:6;408:47;;450:4;408:47;;;726:36:23;699:18;;408:47:6;573:195:23;14:554;132:4;161:2;190;179:9;172:21;222:6;216:13;265:6;260:2;249:9;245:18;238:34;290:1;300:140;314:6;311:1;308:13;300:140;;;409:14;;;405:23;;399:30;375:17;;;394:2;371:26;364:66;329:10;;300:140;;;304:3;489:1;484:2;475:6;464:9;460:22;456:31;449:42;559:2;552;548:7;543:2;535:6;531:15;527:29;516:9;512:45;508:54;500:62;;;;14:554;;;;:::o", + "sourceMap": "162:850:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:86;;;:::i;461:91::-;;;:::i;277:87::-;;;:::i;831:88::-;;;:::i;654:80::-;;;:::i;925:84::-;;;:::i;558:90::-;;;:::i;370:85::-;;;:::i;740:::-;778:47;;820:4;778:47;;;726:36:32;699:18;;778:47:6;;;;-1:-1:-1;;778:47:6;;;;;;;;;;;;;;-1:-1:-1;;;;;778:47:6;-1:-1:-1;;;778:47:6;;;740:85;:::o;185:86::-;224:47;;266:4;224:47;;;726:36:32;699:18;;224:47:6;573:195:32;461:91:6;505:47;;547:4;505:47;;;726:36:32;699:18;;505:47:6;573:195:32;277:87:6;317:47;;359:4;317:47;;;726:36:32;699:18;;317:47:6;573:195:32;831:88:6;872:47;;914:4;872:47;;;726:36:32;699:18;;872:47:6;573:195:32;654:80:6;687:47;;729:4;687:47;;;726:36:32;699:18;;687:47:6;573:195:32;925:84:6;962:47;;1004:4;962:47;;;726:36:32;699:18;;962:47:6;573:195:32;558:90:6;601:47;;643:4;601:47;;;726:36:32;699:18;;601:47:6;573:195:32;370:85:6;408:47;;450:4;408:47;;;726:36:32;699:18;;408:47:6;573:195:32;14:554;132:4;161:2;190;179:9;172:21;222:6;216:13;265:6;260:2;249:9;245:18;238:34;290:1;300:140;314:6;311:1;308:13;300:140;;;409:14;;;405:23;;399:30;375:17;;;394:2;371:26;364:66;329:10;;300:140;;;304:3;489:1;484:2;475:6;464:9;460:22;456:31;449:42;559:2;552;548:7;543:2;535:6;531:15;527:29;516:9;512:45;508:54;500:62;;;;14:554;;;;:::o", "linkReferences": {} }, "methodIdentifiers": { diff --git a/out/TaxToken.sol/TaxToken.json b/out/TaxToken.sol/TaxToken.json new file mode 100644 index 0000000..8718e67 --- /dev/null +++ b/out/TaxToken.sol/TaxToken.json @@ -0,0 +1,21792 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "totalSupplyInput", + "type": "uint256" + }, + { + "internalType": "string", + "name": "nameInput", + "type": "string" + }, + { + "internalType": "string", + "name": "symbolInput", + "type": "string" + }, + { + "internalType": "uint8", + "name": "decimalsInput", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "maxWalletSizeInput", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTxAmountInput", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "DepositorUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "MaxTxUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "MaxWalletUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "TaxesPermanentlyRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_treasury", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "TransferTax", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "TreasuryUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "_state", + "type": "bool" + } + ], + "name": "UpdatedAuthorizedWallets", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "VestingUpdated", + "type": "event" + }, + { + "inputs": [], + "name": "UNISWAP_V2_PAIR", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "UNIV2_ROUTER", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "_taxType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "_bpt", + "type": "uint256" + } + ], + "name": "adjustBasisPointsTax", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "authorized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "name": "basisPointsTax", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "blacklist", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "depositor", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "distributeRoyaltiesToTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getContractTokenBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + } + ], + "name": "getIndustryTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "numIndustryTokens", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "numDifference", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lifetime", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "industryBurn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "industryMint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "industryTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "lifetimeIndustryTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "lock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "maxContractTokenBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxTxAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxWalletSize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "bool", + "name": "_blacklist", + "type": "bool" + } + ], + "name": "modifyBlacklist", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "bool", + "name": "_whitelisted", + "type": "bool" + } + ], + "name": "modifyWhitelist", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_key", + "type": "uint256" + } + ], + "name": "permanentlyRemoveTaxes", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "receiverTaxType", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "senderTaxType", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_depositor", + "type": "address" + } + ], + "name": "setDepositor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_vesting", + "type": "address" + } + ], + "name": "setVesting", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "name": "taxesAccrued", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "taxesRemoved", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "bool", + "name": "_state", + "type": "bool" + } + ], + "name": "updateAuthorizedList", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "updateMaxContractTokenBalance", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_maxTxAmount", + "type": "uint256" + } + ], + "name": "updateMaxTxAmount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_maxWalletSize", + "type": "uint256" + } + ], + "name": "updateMaxWalletSize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_receiver", + "type": "address" + }, + { + "internalType": "uint8", + "name": "_taxType", + "type": "uint8" + } + ], + "name": "updateReceiverTaxType", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "internalType": "uint8", + "name": "_taxType", + "type": "uint8" + } + ], + "name": "updateSenderTaxType", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "vesting", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "whitelist", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x60a06040526011805460ff191690553480156200001b57600080fd5b506040516200446c3803806200446c8339810160408190526200003e91620005f4565b848460036200004e838262000724565b5060046200005d828262000724565b50506005805460ff19166012179055506000620000773390565b60058054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b805460ff19169055620000f2836005805460ff191660ff92909216919091179055565b60055460ff166200010590600a62000903565b62000111908762000914565b600881905550737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200016a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019091906200092e565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021891906200092e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000266573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028c91906200092e565b6001600160a01b031660808190526000908152601460209081526040808320805460ff19908116600117909155601590925290912080549091166002179055620002d860055460ff1690565b620002e590600a62000903565b620002f1908362000914565b600e5560055460ff166200030790600a62000903565b62000313908262000914565b600f5560055460ff166200032990600a62000903565b6200033690600162000914565b60105530600090815260136020819052604082208054600160ff1991821681179092558380527f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c805490911682179055916200039f60055461010090046001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905562000408620003e360055461010090046001600160a01b031690565b60055460ff16620003f690600a62000903565b62000402908962000914565b62000414565b50505050505062000976565b6001600160a01b0382166200046f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b6200048b816002546200051860201b620024f01790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620004be918390620024f062000518821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b600062000526828462000960565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200055757600080fd5b81516001600160401b03808211156200057457620005746200052f565b604051601f8301601f19908116603f011681019082821181831017156200059f576200059f6200052f565b81604052838152602092508683858801011115620005bc57600080fd5b600091505b83821015620005e05785820183015181830184015290820190620005c1565b600093810190920192909252949350505050565b60008060008060008060c087890312156200060e57600080fd5b865160208801519096506001600160401b03808211156200062e57600080fd5b6200063c8a838b0162000545565b965060408901519150808211156200065357600080fd5b506200066289828a0162000545565b945050606087015160ff811681146200067a57600080fd5b809350506080870151915060a087015190509295509295509295565b600181811c90821680620006ab57607f821691505b602082108103620006cc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200051357600081815260208120601f850160051c81016020861015620006fb5750805b601f850160051c820191505b818110156200071c5782815560010162000707565b505050505050565b81516001600160401b038111156200074057620007406200052f565b620007588162000751845462000696565b84620006d2565b602080601f831160018114620007905760008415620007775750858301515b600019600386901b1c1916600185901b1785556200071c565b600085815260208120601f198616915b82811015620007c157888601518255948401946001909101908401620007a0565b5085821015620007e05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008475781600019048211156200082b576200082b620007f0565b808516156200083957918102915b93841c93908002906200080b565b509250929050565b600082620008605750600162000529565b816200086f5750600062000529565b81600181146200088857600281146200089357620008b3565b600191505062000529565b60ff841115620008a757620008a7620007f0565b50506001821b62000529565b5060208310610133831016604e8410600b8410161715620008d8575081810a62000529565b620008e4838362000806565b8060001904821115620008fb57620008fb620007f0565b029392505050565b60006200052660ff8416836200084f565b8082028115828204841417620005295762000529620007f0565b6000602082840312156200094157600080fd5b81516001600160a01b03811681146200095957600080fd5b9392505050565b80820180821115620005295762000529620007f0565b608051613ad362000999600039600081816107e20152611c890152613ad36000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c80638f3f5254116101d3578063c7c4ff4611610104578063f2fde38b116100a2578063f78080601161007c578063f780806014610817578063f9079b731461082a578063f9f92be41461084a578063fb8f3cc81461086d57600080fd5b8063f2fde38b146107ca578063f40acc3d146107dd578063f5423c891461080457600080fd5b8063dd62ed3e116100de578063dd62ed3e14610757578063f0f4426014610790578063f2b6b501146107a3578063f2c098b7146107b757600080fd5b8063c7c4ff461461071e578063cc6df13814610731578063dd4670641461074457600080fd5b8063a3504e7c11610171578063a97ed4d21161014b578063a97ed4d2146106a2578063b5b44106146106b5578063b9181611146106e8578063c4bb8cbe1461070b57600080fd5b8063a3504e7c14610659578063a457c2d71461067c578063a9059cbb1461068f57600080fd5b806397a84f85116101ad57806397a84f85146105e05780639af98541146106005780639b19251a146106235780639dc29fac1461064657600080fd5b80638f3f5254146105bc5780638f3fa860146105cf57806395d89b41146105d857600080fd5b806344c63eec116102ad5780636f6ff3bc1161024b578063715018a611610225578063715018a61461058d5780638456cb59146105955780638c0b5e221461059d5780638da5cb5b146105a657600080fd5b80636f6ff3bc1461053e5780637097f7931461055157806370a082311461056457600080fd5b806361d027b31161028757806361d027b3146104e55780636256d181146104fd578063676d3563146105105780636ef8834a1461052b57600080fd5b806344c63eec1461049c5780635376b092146104c75780635c975abb146104da57600080fd5b806324887e801161031a57806339509351116102f457806339509351146104665780633b6c0334146104795780633f4ba83a1461048157806340c10f191461048957600080fd5b806324887e8014610425578063313ce56714610438578063317d94531461045157600080fd5b8063095ea7b311610356578063095ea7b3146103c7578063166cc492146103ea57806318160ddd1461040a57806323b872dd1461041257600080fd5b8063060d206e1461037d57806306fdde0314610392578063090f215c146103b0575b600080fd5b61039061038b366004613414565b61088d565b005b61039a6108f1565b6040516103a79190613452565b60405180910390f35b6103b960105481565b6040519081526020016103a7565b6103da6103d53660046134a0565b610983565b60405190151581526020016103a7565b6103b96103f83660046134e2565b60186020526000908152604090205481565b6002546103b9565b6103da6104203660046134fd565b61099a565b61039061043336600461353e565b610a03565b60055460ff165b60405160ff90911681526020016103a7565b306000908152602081905260409020546103b9565b6103da6104743660046134a0565b610b00565b610390610b36565b610390610b90565b6103906104973660046134a0565b610c77565b600c546104af906001600160a01b031681565b6040516001600160a01b0390911681526020016103a7565b6103906104d5366004613557565b610ce5565b600b5460ff166103da565b600b546104af9061010090046001600160a01b031681565b61039061050b36600461353e565b610e25565b6104af737a250d5630b4cf539739df2c5dacb4c659f2488d81565b610390610539366004613414565b610f1b565b61039061054c366004613573565b6110bc565b61039061055f366004613590565b6112e7565b6103b9610572366004613573565b6001600160a01b031660009081526020819052604090205490565b6103906113bd565b61039061143d565b6103b9600f5481565b60055461010090046001600160a01b03166104af565b6103906105ca3660046134a0565b61154d565b6103b9600e5481565b61039a611615565b6103b96105ee3660046134e2565b60166020526000908152604090205481565b61043f61060e366004613573565b60156020526000908152604090205460ff1681565b6103da610631366004613573565b60136020526000908152604090205460ff1681565b6103906106543660046134a0565b611624565b61043f610667366004613573565b60146020526000908152604090205460ff1681565b6103da61068a3660046134a0565b61168e565b6103da61069d3660046134a0565b6116dd565b6103906106b036600461353e565b6116ea565b6106c86106c3366004613573565b61173b565b6040805194855260208501939093529183015260608201526080016103a7565b6103da6106f6366004613573565b60176020526000908152604090205460ff1681565b61039061071936600461353e565b6117fe565b600d546104af906001600160a01b031681565b61039061073f366004613414565b6119db565b61039061075236600461353e565b611dbe565b6103b96107653660046135c5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61039061079e366004613573565b611e6b565b600d546103da90600160a01b900460ff1681565b6103906107c5366004613573565b61201d565b6103906107d8366004613573565b6121ba565b6104af7f000000000000000000000000000000000000000000000000000000000000000081565b6103906108123660046134a0565b612219565b610390610825366004613590565b612418565b6103b9610838366004613573565b60196020526000908152604090205481565b6103da610858366004613573565b60126020526000908152604090205460ff1681565b6103b961087b366004613573565b601a6020526000908152604090205481565b6005546001600160a01b036101009091041633146108c65760405162461bcd60e51b81526004016108bd906135f3565b60405180910390fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b60606003805461090090613628565b80601f016020809104026020016040519081016040528092919081815260200182805461092c90613628565b80156109795780601f1061094e57610100808354040283529160200191610979565b820191906000526020600020905b81548152906001019060200180831161095c57829003601f168201915b5050505050905090565b6000610990338484612503565b5060015b92915050565b60006109a7848484612628565b6109f984336109f485604051806060016040528060288152602001613a51602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190612c33565b612503565b5060019392505050565b6005546001600160a01b03610100909104163314610a335760405162461bcd60e51b81526004016108bd906135f3565b60008111610aa95760405162461bcd60e51b815260206004820152603f60248201527f546178546f6b656e2e736f6c3a3a7570646174654d617857616c6c657453697a60448201527f652829205f6d617857616c6c657453697a65206d75737420626520677420300060648201526084016108bd565b60055460ff16610aba90600a61375c565b610ac4908261376b565b600e8190556040519081527f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109909185906109f490866124f0565b6005546001600160a01b03610100909104163314610b665760405162461bcd60e51b81526004016108bd906135f3565b60115460ff16610b8e57610b8e610b893060009081526020819052604090205490565b612c5f565b565b6005546001600160a01b03610100909104163314610bc05760405162461bcd60e51b81526004016108bd906135f3565b600b5460ff16610c385760405162461bcd60e51b815260206004820152603d60248201527f546178546f6b656e2e736f6c3a3a7768656e50617573656428292c20436f6e7460448201527f72616374206973206e6f742063757272656e746c79207061757365642e00000060648201526084016108bd565b600b805460ff191690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a1565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b03161480610cbb57503360009081526017602052604090205460ff1615156001145b610cd75760405162461bcd60e51b81526004016108bd90613782565b610ce18282612d36565b5050565b6005546001600160a01b03610100909104163314610d155760405162461bcd60e51b81526004016108bd906135f3565b6107d0811115610d8d5760405162461bcd60e51b815260206004820152603860248201527f546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e74735460448201527f617828292c205f627074203e20323030302028323025292e000000000000000060648201526084016108bd565b600d54600160a01b900460ff1615610e0f576040805162461bcd60e51b81526020600482015260248101919091527f546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e74735460448201527f617828292c205461786174696f6e20686173206265656e2072656d6f7665642e60648201526084016108bd565b60ff909116600090815260166020526040902055565b6005546001600160a01b03610100909104163314610e555760405162461bcd60e51b81526004016108bd906135f3565b60008111610ecb5760405162461bcd60e51b815260206004820152603b60248201527f546178546f6b656e2e736f6c3a3a7570646174654d61785478416d6f756e742860448201527f29205f6d61785478416d6f756e74206d7573742062652067742030000000000060648201526084016108bd565b60055460ff16610edc90600a61375c565b610ee6908261376b565b600f8190556040519081527fff3dd5e80294197918c284bbfc3dadd97d0b40ce92106110946329088f80068a90602001610af5565b6005546001600160a01b03610100909104163314610f4b5760405162461bcd60e51b81526004016108bd906135f3565b6001600160a01b038216610fba5760405162461bcd60e51b815260206004820152603060248201527f546178546f6b656e2e736f6c3a3a757064617465417574686f72697a65644c6960448201526f073742829205f6f776e6572203d3d20360841b60648201526084016108bd565b6001600160a01b03821660009081526017602052604090205460ff1615158115151461105d5760405162461bcd60e51b815260206004820152604660248201527f546178546f6b656e2e736f6c3a3a757064617465417574686f72697a65644c6960448201527f73742829205f6163636f756e7420697320616c72656164792073657420746f206064820152655f737461746560d01b608482015260a4016108bd565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f351731b7072c47dd7498a1db554905beb804daf2833acfabd6e954d1fac65cfd910160405180910390a25050565b6005546001600160a01b036101009091041633146110ec5760405162461bcd60e51b81526004016108bd906135f3565b600c546001600160a01b03908116908216036111705760405162461bcd60e51b815260206004820152603a60248201527f546178546f6b656e2e736f6c3a3a73657456657374696e67282920616c72656160448201527f64792073657420746f207472656173757279206164647265737300000000000060648201526084016108bd565b6001600160a01b0381166111ec5760405162461bcd60e51b815260206004820152603860248201527f546178546f6b656e2e736f6c3a3a73657456657374696e67282920747265617360448201527f7572792063616e6e6f742062652061646472657373283029000000000000000060648201526084016108bd565b600c80546001600160a01b0319166001600160a01b03831690811790915561121590600161088d565b600c546040805163022b1d8960e21b815290516000926001600160a01b0316916308ac76249160048083019260209291908290030181865afa15801561125f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128391906137df565b600c5490915061129c906001600160a01b031682612d36565b600c54604080516001600160a01b03928316815291841660208301527fa596bfd2fd3f8533a574f9df13f553b4d5751c65c233b974b15fa91891857f3e910160405180910390a15050565b6005546001600160a01b036101009091041633146113175760405162461bcd60e51b81526004016108bd906135f3565b60038160ff16106113905760405162461bcd60e51b815260206004820152603e60248201527f546178546f6b656e3a3a75706461746553656e6465725461785479706528292c60448201527f205f74617854797065206d757374206265206c657373207468616e20332e000060648201526084016108bd565b6001600160a01b03919091166000908152601460205260409020805460ff191660ff909216919091179055565b6005546001600160a01b036101009091041633146113ed5760405162461bcd60e51b81526004016108bd906135f3565b60055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6005546001600160a01b0361010090910416331461146d5760405162461bcd60e51b81526004016108bd906135f3565b3361147a600b5460ff1690565b158061149e57506001600160a01b03811660009081526013602052604090205460ff165b6115105760405162461bcd60e51b815260206004820152603f60248201527f546178546f6b656e2e736f6c3a3a7768656e4e6f74506175736564556e69282960448201527f2c20436f6e74726163742069732063757272656e746c79207061757365642e0060648201526084016108bd565b600b805460ff191660011790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610af5565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b0316148061159157503360009081526017602052604090205460ff1615156001145b6115ad5760405162461bcd60e51b81526004016108bd90613782565b6115b78282612d36565b6001600160a01b038216600090815260196020526040812080548392906115df9084906137f8565b90915550506001600160a01b0382166000908152601a60205260408120805483929061160c9084906137f8565b90915550505050565b60606004805461090090613628565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b0316148061166857503360009081526017602052604090205460ff1615156001145b6116845760405162461bcd60e51b81526004016108bd90613782565b610ce18282612e15565b600061099033846109f485604051806060016040528060258152602001613a79602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190612c33565b6000610990338484612628565b6005546001600160a01b0361010090910416331461171a5760405162461bcd60e51b81526004016108bd906135f3565b60055460ff1661172b90600a61375c565b611735908261376b565b60105550565b6040516370a0823160e01b81526001600160a01b0382166004820152600090819081908190819030906370a0823190602401602060405180830381865afa15801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae91906137df565b6001600160a01b0387166000908152601960205260408120549192506117d4828461380b565b6001600160a01b03989098166000908152601a602052604090205492989197965091945092505050565b6005546001600160a01b0361010090910416331461182e5760405162461bcd60e51b81526004016108bd906135f3565b80602a146118965760405162461bcd60e51b815260206004820152602f60248201527f546178546f6b656e3a3a7065726d616e656e746c7952656d6f7665546178657360448201526e141496102fb5b2bc90109e901a191760891b60648201526084016108bd565b600d54600160a01b900460ff16156119275760405162461bcd60e51b815260206004820152604860248201527f546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e74735460448201527f617828292c205461786174696f6e2068617320616c7265616479206265656e206064820152673932b6b7bb32b21760c11b608482015260a4016108bd565b601660205260007f0263c2b778d062355049effc2dece97bc6547ff8a88a3258daa512061c2153dd8190557f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf49819055600281527fcaff291fe014adc6b72a172705750b4cabe8f8667664d2924a166caab2885648819055600d805460ff60a01b1916600160a01b1790556040517fc75f57ef1bbf80f914dce2d672e5f9474567b8de900e1580de72874d08ff86b99190a150565b6005546001600160a01b03610100909104163314611a0b5760405162461bcd60e51b81526004016108bd906135f3565b8015611d93576001600160a01b03821660009081526013602052604090205460ff1615611a9d5760405162461bcd60e51b815260206004820152604660248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c69737420612077686974656c6973746564206064820152651dd85b1b195d60d21b608482015260a4016108bd565b600b546001600160a01b03610100909104811690831603611b145760405162461bcd60e51b815260206004820152603a60248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c69737420747265617375727900000000000060648201526084016108bd565b600d546001600160a01b0390811690831603611b865760405162461bcd60e51b815260206004820152603b60248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c697374206465706f7369746f72000000000060648201526084016108bd565b600c546001600160a01b0390811690831603611bf85760405162461bcd60e51b815260206004820152603960248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c6973742076657374696e670000000000000060648201526084016108bd565b737a250d5630b4cf539739df2c5dacb4c659f2488c196001600160a01b03831601611c875760405162461bcd60e51b8152602060048201526044602482018190526000805160206139e9833981519152908201527f2063616e6e6f7420626c61636b6c6973742074686520556e697377617020524f6064820152632aaa22a960e11b608482015260a4016108bd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611d275760405162461bcd60e51b815260206004820152604260248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c6973742074686520556e697377617020504160648201526124a960f11b608482015260a4016108bd565b306001600160a01b03831603611d935760405162461bcd60e51b815260206004820152603f60248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c697374207468697320636f6e74726163740060648201526084016108bd565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b03610100909104163314611dee5760405162461bcd60e51b81526004016108bd906135f3565b60058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055611e2881426137f8565b60075560055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6005546001600160a01b03610100909104163314611e9b5760405162461bcd60e51b81526004016108bd906135f3565b600b546001600160a01b03610100909104811690821603611f245760405162461bcd60e51b815260206004820152603b60248201527f546178546f6b656e2e736f6c3a3a7365745472656173757279282920616c726560448201527f6164792073657420746f2074726561737572792061646472657373000000000060648201526084016108bd565b6001600160a01b038116611fa05760405162461bcd60e51b815260206004820152603960248201527f546178546f6b656e2e736f6c3a3a73657454726561737572792829207472656160448201527f737572792063616e6e6f7420626520616464726573732830290000000000000060648201526084016108bd565b600b8054610100600160a81b0319166101006001600160a01b0384811682029290921792839055611fd4920416600161088d565b600b54604080516001600160a01b036101009093048316815291831660208301527f4ab5be82436d353e61ca18726e984e561f5c1cc7c6d38b29d2553c790434705a9101610af5565b6005546001600160a01b0361010090910416331461204d5760405162461bcd60e51b81526004016108bd906135f3565b600d546001600160a01b03908116908216036120d15760405162461bcd60e51b815260206004820152603c60248201527f546178546f6b656e2e736f6c3a3a7365746465706f7369746f72282920616c7260448201527f656164792073657420746f20747265617375727920616464726573730000000060648201526084016108bd565b6001600160a01b03811661214d5760405162461bcd60e51b815260206004820152603a60248201527f546178546f6b656e2e736f6c3a3a7365746465706f7369746f7228292074726560448201527f61737572792063616e6e6f74206265206164647265737328302900000000000060648201526084016108bd565b600d80546001600160a01b0319166001600160a01b03831690811790915561217690600061088d565b600d54604080516001600160a01b03928316815291831660208301527f830becdc16911bd35301d7e36682bb0bf344b313f5406e9eb6d8632a349763449101610af5565b6005546001600160a01b036101009091041633146121ea5760405162461bcd60e51b81526004016108bd906135f3565b6001600160a01b0381166000908152601360205260409020805460ff1916600117905561221681612f19565b50565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b0316148061225d57503360009081526017602052604090205460ff1615156001145b6122795760405162461bcd60e51b81526004016108bd90613782565b6001600160a01b0382166122f55760405162461bcd60e51b815260206004820152603a60248201527f546178546f6b656e2e736f6c3a3a696e6475737472794275726e28292c20436160448201527f6e6e6f74206275726e20746f207a65726f20616464726573732e00000000000060648201526084016108bd565b80612315836001600160a01b031660009081526020819052604090205490565b10156123975760405162461bcd60e51b815260206004820152604560248201527f546178546f6b656e2e736f6c3a3a696e6475737472794275726e28292c20496e60448201527f73756666696369656e742062616c616e6365206f66202450524f564520746f20606482015264313ab9371760d91b608482015260a4016108bd565b6001600160a01b03821660009081526019602052604090205481116123f3576123c08282612e15565b6001600160a01b038216600090815260196020526040812080548392906123e890849061380b565b90915550610ce19050565b6123fd8282612e15565b506001600160a01b0316600090815260196020526040812055565b6005546001600160a01b036101009091041633146124485760405162461bcd60e51b81526004016108bd906135f3565b60038160ff16106124c3576040805162461bcd60e51b81526020600482015260248101919091527f546178546f6b656e3a3a7570646174655265636569766572546178547970652860448201527f292c205f74617854797065206d757374206265206c657373207468616e20332e60648201526084016108bd565b6001600160a01b03919091166000908152601560205260409020805460ff191660ff909216919091179055565b60006124fc82846137f8565b9392505050565b6001600160a01b0383166125655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108bd565b6001600160a01b0382166125c65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108bd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000612636600b5460ff1690565b158061265a57506001600160a01b03841660009081526013602052604090205460ff165b8061267d57506001600160a01b03831660009081526013602052604090205460ff165b8061269757503360009081526013602052604090205460ff165b6127095760405162461bcd60e51b815260206004820152603760248201527f546178546f6b656e2e736f6c3a3a5f7472616e73666572282920636f6e74726160448201527f63742069732063757272656e746c79207061757365642e00000000000000000060648201526084016108bd565b81612729856001600160a01b031660009081526020819052604090205490565b101561278a5760405162461bcd60e51b815260206004820152602a60248201527f546178546f6b656e3a3a5f7472616e73666572282920696e73756666696369656044820152696e742062616c616e636560b01b60648201526084016108bd565b600082116127f65760405162461bcd60e51b815260206004820152603360248201527f546178546f6b656e3a3a5f7472616e73666572282920616d6f756e74206d75736044820152720742062652067726561746572207468616e203606c1b60648201526084016108bd565b6001600160a01b03831660009081526013602052604090205460ff1615801561283857506001600160a01b03841660009081526013602052604090205460ff16155b801561285457503360009081526013602052604090205460ff16155b801561286957506001600160a01b0384163014155b15612c225781600f5410156128d95760405162461bcd60e51b815260206004820152603060248201527f546178546f6b656e3a3a5f7472616e73666572282920616d6f756e742065786360448201526f1959591cc81b585e151e105b5bdd5b9d60821b60648201526084016108bd565b6001600160a01b03841660009081526012602052604090205460ff16156129565760405162461bcd60e51b815260206004820152602b60248201527f546178546f6b656e3a3a5f7472616e7366657228292073656e6465722069732060448201526a189b1858dadb1a5cdd195960aa1b60648201526084016108bd565b6001600160a01b03831660009081526012602052604090205460ff16156129d55760405162461bcd60e51b815260206004820152602d60248201527f546178546f6b656e3a3a5f7472616e736665722829207265636569766572206960448201526c1cc8189b1858dadb1a5cdd1959609a1b60648201526084016108bd565b6001600160a01b03841660009081526014602052604090205460ff1615612a1457506001600160a01b03831660009081526014602052604090205460ff165b6001600160a01b03831660009081526015602052604090205460ff1615612a5357506001600160a01b03821660009081526015602052604090205460ff165b60ff811660009081526016602052604081205461271090612a74908561376b565b612a7e919061381e565b90506000612a8c828561380b565b905083612a9982846137f8565b14612af85760405162461bcd60e51b815260206004820152602960248201527f546178546f6b656e3a3a5f7472616e73666572282920637269746963616c206d60448201526830ba341032b93937b960b91b60648201526084016108bd565b8260ff16600214158015612b1a5750600d546001600160a01b03868116911614155b15612bb757600e5481612b42876001600160a01b031660009081526020819052604090205490565b612b4c91906137f8565b1115612bb75760405162461bcd60e51b815260206004820152603460248201527f546178546f6b656e3a3a5f7472616e73666572282920616d6f756e74206578636044820152731959591cc81b585e15d85b1b195d105b5bdd5b9d60621b60648201526084016108bd565b8260ff166002148015612bcd575060115460ff16155b15612c055730600090815260208190526040902054600f54811115612bf15750600f545b6010548110612c0357612c0381612c5f565b505b612c10868683613015565b612c1b863084613015565b5050612c2d565b612c2d848484613015565b50505050565b60008184841115612c575760405162461bcd60e51b81526004016108bd9190613452565b505050900390565b6011805460ff191660011790556000612c7782613198565b90508015612d2857600b54604051630eab2cb760e31b8152600481018390526101009091046001600160a01b03169063755965b890602401600060405180830381600087803b158015612cc957600080fd5b505af1158015612cdd573d6000803e3d6000fd5b5050600b546040518481526101009091046001600160a01b031692507f831f3151ac4fe05e9e25607e80c8710ed1dbc868f9edf4c2852b87d14eec373b915060200160405180910390a25b50506011805460ff19169055565b6001600160a01b038216612d8c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108bd565b600254612d9990826124f0565b6002556001600160a01b038216600090815260208190526040902054612dbf90826124f0565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6001600160a01b038216612e755760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108bd565b612eb281604051806060016040528060228152602001613a09602291396001600160a01b0385166000908152602081905260409020549190612c33565b6001600160a01b038316600090815260208190526040902055600254612ed890826133f3565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001612e09565b6005546001600160a01b03610100909104163314612f495760405162461bcd60e51b81526004016108bd906135f3565b6001600160a01b038116612fae5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108bd565b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166130795760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108bd565b6001600160a01b0382166130db5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108bd565b61311881604051806060016040528060268152602001613a2b602691396001600160a01b0386166000908152602081905260409020549190612c33565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461314790826124f0565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161261b565b6040805160028082526060820183526000928392919060208301908036833701905050905030816000815181106131d1576131d1613856565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613243573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613267919061386c565b8160018151811061327a5761327a613856565b60200260200101906001600160a01b031690816001600160a01b0316815250506132b930737a250d5630b4cf539739df2c5dacb4c659f2488d85612503565b60405163d06ca61f60e01b8152600090737a250d5630b4cf539739df2c5dacb4c659f2488d9063d06ca61f906132f590879086906004016138cd565b600060405180830381865afa158015613312573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261333a91908101906138ee565b600b54909150737a250d5630b4cf539739df2c5dacb4c659f2488d90635c11d795908690600090869061010090046001600160a01b031661337d4261012c6137f8565b6040518663ffffffff1660e01b815260040161339d9594939291906139ac565b600060405180830381600087803b1580156133b757600080fd5b505af11580156133cb573d6000803e3d6000fd5b50505050806001815181106133e2576133e2613856565b602002602001015192505050919050565b60006124fc828461380b565b6001600160a01b038116811461221657600080fd5b6000806040838503121561342757600080fd5b8235613432816133ff565b91506020830135801515811461344757600080fd5b809150509250929050565b600060208083528351808285015260005b8181101561347f57858101830151858201604001528201613463565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156134b357600080fd5b82356134be816133ff565b946020939093013593505050565b803560ff811681146134dd57600080fd5b919050565b6000602082840312156134f457600080fd5b6124fc826134cc565b60008060006060848603121561351257600080fd5b833561351d816133ff565b9250602084013561352d816133ff565b929592945050506040919091013590565b60006020828403121561355057600080fd5b5035919050565b6000806040838503121561356a57600080fd5b6134be836134cc565b60006020828403121561358557600080fd5b81356124fc816133ff565b600080604083850312156135a357600080fd5b82356135ae816133ff565b91506135bc602084016134cc565b90509250929050565b600080604083850312156135d857600080fd5b82356135e3816133ff565b91506020830135613447816133ff565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061363c57607f821691505b60208210810361365c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156136b357816000190482111561369957613699613662565b808516156136a657918102915b93841c939080029061367d565b509250929050565b6000826136ca57506001610994565b816136d757506000610994565b81600181146136ed57600281146136f757613713565b6001915050610994565b60ff84111561370857613708613662565b50506001821b610994565b5060208310610133831016604e8410600b8410161715613736575081810a610994565b6137408383613678565b806000190482111561375457613754613662565b029392505050565b60006124fc60ff8416836136bb565b808202811582820484141761099457610994613662565b6020808252603d908201527f546178546f6b656e2e736f6c3a3a6f6e6c79417574686f72697a656428292c2060408201527f6d73672e73656e646572206973206e6f7420617574686f72697a65642e000000606082015260800190565b6000602082840312156137f157600080fd5b5051919050565b8082018082111561099457610994613662565b8181038181111561099457610994613662565b60008261383b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561387e57600080fd5b81516124fc816133ff565b600081518084526020808501945080840160005b838110156138c25781516001600160a01b03168752958201959082019060010161389d565b509495945050505050565b8281526040602082015260006138e66040830184613889565b949350505050565b6000602080838503121561390157600080fd5b825167ffffffffffffffff8082111561391957600080fd5b818501915085601f83011261392d57600080fd5b81518181111561393f5761393f613840565b8060051b604051601f19603f8301168101818110858211171561396457613964613840565b60405291825284820192508381018501918883111561398257600080fd5b938501935b828510156139a057845184529385019392850192613987565b98975050505050505050565b85815284602082015260a0604082015260006139cb60a0830186613889565b6001600160a01b039490941660608301525060800152939250505056fe546178546f6b656e2e736f6c3a3a6d6f64696679426c61636b6c69737428292c45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f6afa79d2dd6dc16daa6196b4a596cb84785ca65de715a6382c40987a3939e4c64736f6c63430008110033", + "sourceMap": "828:24476:16:-:0;;;1628:19;;;-1:-1:-1;;1628:19:16;;;3746:1101;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3978:9;3989:11;8463:5:21;:13;3978:9:16;8463:5:21;:13;:::i;:::-;-1:-1:-1;8487:7:21;:17;8497:7;8487;:17;:::i;:::-;-1:-1:-1;;8515:9:21;:14;;-1:-1:-1;;8515:14:21;8527:2;8515:14;;;-1:-1:-1;8515:9:21;975:12:20;699:10:19;;603:115;975:12:20;998:6;:18;;-1:-1:-1;;;;;;998:18:20;;-1:-1:-1;;;;;998:18:20;;;;;;;;;;;;1032:43;;998:18;;-1:-1:-1;998:18:20;-1:-1:-1;;1032:43:20;;-1:-1:-1;;1032:43:20;-1:-1:-1;4013:7:16::1;:15:::0;;-1:-1:-1;;4013:15:16::1;::::0;;4039:29:::1;4054:13:::0;16759:9:21;:21;;-1:-1:-1;;16759:21:21;;;;;;;;;;;;16690:98;4039:29:16::1;9624:9:21::0;;;;4114:16:16::1;::::0;:2:::1;:16;:::i;:::-;4094:37;::::0;:16;:37:::1;:::i;:::-;4079:12;:52;;;;1289:42;-1:-1:-1::0;;;;;4248:40:16::1;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4216:96:16::1;;4321:4;1289:42;-1:-1:-1::0;;;;;4328:37:16::1;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4216:152;::::0;-1:-1:-1;;;;;;4216:152:16::1;::::0;;;;;;-1:-1:-1;;;;;6696:15:32;;;4216:152:16::1;::::0;::::1;6678:34:32::0;6748:15;;6728:18;;;6721:43;6613:18;;4216:152:16::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4198:170:16::1;;::::0;;;4382:30:::1;::::0;;;:13:::1;:30;::::0;;;;;;;:34;;-1:-1:-1;;4382:34:16;;::::1;4415:1;4382:34;::::0;;;4427:15:::1;:32:::0;;;;;;:36;;;;::::1;4462:1;4427:36;::::0;;4520:10:::1;9624:9:21::0;;;;;9550:91;4520:10:16::1;4514:16;::::0;:2:::1;:16;:::i;:::-;4492:39;::::0;:18;:39:::1;:::i;:::-;4476:13;:55:::0;9624:9:21;;;;4576:16:16::1;::::0;:2:::1;:16;:::i;:::-;4556:37;::::0;:16;:37:::1;:::i;:::-;4542:11;:51:::0;9624:9:21;;;;4637:16:16::1;::::0;:2:::1;:16;:::i;:::-;4632:22;::::0;:1:::1;:22;:::i;:::-;4606:23;:48:::0;4685:4:::1;4667:24;::::0;;;:9:::1;:24;::::0;;;;;;:31;;4694:4:::1;-1:-1:-1::0;;4667:31:16;;::::1;::::0;::::1;::::0;;;4709:21;;;;:28;;;;::::1;::::0;::::1;::::0;;4694:4;4758:7:::1;1237:6:20::0;;;;;-1:-1:-1;;;;;1237:6:20;;1164:87;4758:7:16::1;-1:-1:-1::0;;;;;4748:18:16::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;4748:18:16;:25;;-1:-1:-1;;4748:25:16::1;::::0;::::1;;::::0;;;::::1;::::0;;4786:53:::1;4792:7;1237:6:20::0;;;;;-1:-1:-1;;;;;1237:6:20;;1164:87;4792:7:16::1;9624:9:21::0;;;;4821:16:16::1;::::0;:2:::1;:16;:::i;:::-;4801:37;::::0;:16;:37:::1;:::i;:::-;4786:5;:53::i;:::-;3746:1101:::0;;;;;;828:24476;;14445:378:21;-1:-1:-1;;;;;14529:21:21;;14521:65;;;;-1:-1:-1;;;14521:65:21;;6977:2:32;14521:65:21;;;6959:21:32;7016:2;6996:18;;;6989:30;7055:33;7035:18;;;7028:61;7106:18;;14521:65:21;;;;;;;;14676:24;14693:6;14676:12;;:16;;;;;;:24;;;;:::i;:::-;14661:12;:39;-1:-1:-1;;;;;14732:18:21;;:9;:18;;;;;;;;;;;;:30;;14755:6;;14732:22;;;;;:30;;:::i;:::-;-1:-1:-1;;;;;14711:18:21;;:9;:18;;;;;;;;;;;:51;;;;14778:37;;7281:25:32;;;14711:18:21;;:9;;14778:37;;7254:18:32;14778:37:21;;;;;;;14445:378;;:::o;17391:92::-;;;;:::o;2486:98::-;2544:7;2571:5;2575:1;2571;:5;:::i;:::-;2564:12;;2486:98;;;;;:::o;14:127:32:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:32;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:32;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:32:o;991:898::-;1124:6;1132;1140;1148;1156;1164;1217:3;1205:9;1196:7;1192:23;1188:33;1185:53;;;1234:1;1231;1224:12;1185:53;1257:16;;1317:2;1302:18;;1296:25;1257:16;;-1:-1:-1;;;;;;1370:14:32;;;1367:34;;;1397:1;1394;1387:12;1367:34;1420:61;1473:7;1464:6;1453:9;1449:22;1420:61;:::i;:::-;1410:71;;1527:2;1516:9;1512:18;1506:25;1490:41;;1556:2;1546:8;1543:16;1540:36;;;1572:1;1569;1562:12;1540:36;;1595:63;1650:7;1639:8;1628:9;1624:24;1595:63;:::i;:::-;1585:73;;;1701:2;1690:9;1686:18;1680:25;1745:4;1738:5;1734:16;1727:5;1724:27;1714:55;;1765:1;1762;1755:12;1714:55;1788:5;1778:15;;;1833:3;1822:9;1818:19;1812:26;1802:36;;1878:3;1867:9;1863:19;1857:26;1847:36;;991:898;;;;;;;;:::o;1894:380::-;1973:1;1969:12;;;;2016;;;2037:61;;2091:4;2083:6;2079:17;2069:27;;2037:61;2144:2;2136:6;2133:14;2113:18;2110:38;2107:161;;2190:10;2185:3;2181:20;2178:1;2171:31;2225:4;2222:1;2215:15;2253:4;2250:1;2243:15;2107:161;;1894:380;;;:::o;2405:545::-;2507:2;2502:3;2499:11;2496:448;;;2543:1;2568:5;2564:2;2557:17;2613:4;2609:2;2599:19;2683:2;2671:10;2667:19;2664:1;2660:27;2654:4;2650:38;2719:4;2707:10;2704:20;2701:47;;;-1:-1:-1;2742:4:32;2701:47;2797:2;2792:3;2788:12;2785:1;2781:20;2775:4;2771:31;2761:41;;2852:82;2870:2;2863:5;2860:13;2852:82;;;2915:17;;;2896:1;2885:13;2852:82;;;2856:3;;;2405:545;;;:::o;3126:1352::-;3246:10;;-1:-1:-1;;;;;3268:30:32;;3265:56;;;3301:18;;:::i;:::-;3330:97;3420:6;3380:38;3412:4;3406:11;3380:38;:::i;:::-;3374:4;3330:97;:::i;:::-;3482:4;;3546:2;3535:14;;3563:1;3558:663;;;;4265:1;4282:6;4279:89;;;-1:-1:-1;4334:19:32;;;4328:26;4279:89;-1:-1:-1;;3083:1:32;3079:11;;;3075:24;3071:29;3061:40;3107:1;3103:11;;;3058:57;4381:81;;3528:944;;3558:663;2352:1;2345:14;;;2389:4;2376:18;;-1:-1:-1;;3594:20:32;;;3712:236;3726:7;3723:1;3720:14;3712:236;;;3815:19;;;3809:26;3794:42;;3907:27;;;;3875:1;3863:14;;;;3742:19;;3712:236;;;3716:3;3976:6;3967:7;3964:19;3961:201;;;4037:19;;;4031:26;-1:-1:-1;;4120:1:32;4116:14;;;4132:3;4112:24;4108:37;4104:42;4089:58;4074:74;;3961:201;-1:-1:-1;;;;;4208:1:32;4192:14;;;4188:22;4175:36;;-1:-1:-1;3126:1352:32:o;4483:127::-;4544:10;4539:3;4535:20;4532:1;4525:31;4575:4;4572:1;4565:15;4599:4;4596:1;4589:15;4615:422;4704:1;4747:5;4704:1;4761:270;4782:7;4772:8;4769:21;4761:270;;;4841:4;4837:1;4833:6;4829:17;4823:4;4820:27;4817:53;;;4850:18;;:::i;:::-;4900:7;4890:8;4886:22;4883:55;;;4920:16;;;;4883:55;4999:22;;;;4959:15;;;;4761:270;;;4765:3;4615:422;;;;;:::o;5042:806::-;5091:5;5121:8;5111:80;;-1:-1:-1;5162:1:32;5176:5;;5111:80;5210:4;5200:76;;-1:-1:-1;5247:1:32;5261:5;;5200:76;5292:4;5310:1;5305:59;;;;5378:1;5373:130;;;;5285:218;;5305:59;5335:1;5326:10;;5349:5;;;5373:130;5410:3;5400:8;5397:17;5394:43;;;5417:18;;:::i;:::-;-1:-1:-1;;5473:1:32;5459:16;;5488:5;;5285:218;;5587:2;5577:8;5574:16;5568:3;5562:4;5559:13;5555:36;5549:2;5539:8;5536:16;5531:2;5525:4;5522:12;5518:35;5515:77;5512:159;;;-1:-1:-1;5624:19:32;;;5656:5;;5512:159;5703:34;5728:8;5722:4;5703:34;:::i;:::-;5773:6;5769:1;5765:6;5761:19;5752:7;5749:32;5746:58;;;5784:18;;:::i;:::-;5822:20;;5042:806;-1:-1:-1;;;5042:806:32:o;5853:140::-;5911:5;5940:47;5981:4;5971:8;5967:19;5961:4;5940:47;:::i;5998:168::-;6071:9;;;6102;;6119:15;;;6113:22;;6099:37;6089:71;;6140:18;;:::i;6171:290::-;6241:6;6294:2;6282:9;6273:7;6269:23;6265:32;6262:52;;;6310:1;6307;6300:12;6262:52;6336:16;;-1:-1:-1;;;;;6381:31:32;;6371:42;;6361:70;;6427:1;6424;6417:12;6361:70;6450:5;6171:290;-1:-1:-1;;;6171:290:32:o;7317:125::-;7382:9;;;7403:10;;;7400:36;;;7416:18;;:::i;7317:125::-;828:24476:16;;;;;;;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b50600436106103785760003560e01c80638f3f5254116101d3578063c7c4ff4611610104578063f2fde38b116100a2578063f78080601161007c578063f780806014610817578063f9079b731461082a578063f9f92be41461084a578063fb8f3cc81461086d57600080fd5b8063f2fde38b146107ca578063f40acc3d146107dd578063f5423c891461080457600080fd5b8063dd62ed3e116100de578063dd62ed3e14610757578063f0f4426014610790578063f2b6b501146107a3578063f2c098b7146107b757600080fd5b8063c7c4ff461461071e578063cc6df13814610731578063dd4670641461074457600080fd5b8063a3504e7c11610171578063a97ed4d21161014b578063a97ed4d2146106a2578063b5b44106146106b5578063b9181611146106e8578063c4bb8cbe1461070b57600080fd5b8063a3504e7c14610659578063a457c2d71461067c578063a9059cbb1461068f57600080fd5b806397a84f85116101ad57806397a84f85146105e05780639af98541146106005780639b19251a146106235780639dc29fac1461064657600080fd5b80638f3f5254146105bc5780638f3fa860146105cf57806395d89b41146105d857600080fd5b806344c63eec116102ad5780636f6ff3bc1161024b578063715018a611610225578063715018a61461058d5780638456cb59146105955780638c0b5e221461059d5780638da5cb5b146105a657600080fd5b80636f6ff3bc1461053e5780637097f7931461055157806370a082311461056457600080fd5b806361d027b31161028757806361d027b3146104e55780636256d181146104fd578063676d3563146105105780636ef8834a1461052b57600080fd5b806344c63eec1461049c5780635376b092146104c75780635c975abb146104da57600080fd5b806324887e801161031a57806339509351116102f457806339509351146104665780633b6c0334146104795780633f4ba83a1461048157806340c10f191461048957600080fd5b806324887e8014610425578063313ce56714610438578063317d94531461045157600080fd5b8063095ea7b311610356578063095ea7b3146103c7578063166cc492146103ea57806318160ddd1461040a57806323b872dd1461041257600080fd5b8063060d206e1461037d57806306fdde0314610392578063090f215c146103b0575b600080fd5b61039061038b366004613414565b61088d565b005b61039a6108f1565b6040516103a79190613452565b60405180910390f35b6103b960105481565b6040519081526020016103a7565b6103da6103d53660046134a0565b610983565b60405190151581526020016103a7565b6103b96103f83660046134e2565b60186020526000908152604090205481565b6002546103b9565b6103da6104203660046134fd565b61099a565b61039061043336600461353e565b610a03565b60055460ff165b60405160ff90911681526020016103a7565b306000908152602081905260409020546103b9565b6103da6104743660046134a0565b610b00565b610390610b36565b610390610b90565b6103906104973660046134a0565b610c77565b600c546104af906001600160a01b031681565b6040516001600160a01b0390911681526020016103a7565b6103906104d5366004613557565b610ce5565b600b5460ff166103da565b600b546104af9061010090046001600160a01b031681565b61039061050b36600461353e565b610e25565b6104af737a250d5630b4cf539739df2c5dacb4c659f2488d81565b610390610539366004613414565b610f1b565b61039061054c366004613573565b6110bc565b61039061055f366004613590565b6112e7565b6103b9610572366004613573565b6001600160a01b031660009081526020819052604090205490565b6103906113bd565b61039061143d565b6103b9600f5481565b60055461010090046001600160a01b03166104af565b6103906105ca3660046134a0565b61154d565b6103b9600e5481565b61039a611615565b6103b96105ee3660046134e2565b60166020526000908152604090205481565b61043f61060e366004613573565b60156020526000908152604090205460ff1681565b6103da610631366004613573565b60136020526000908152604090205460ff1681565b6103906106543660046134a0565b611624565b61043f610667366004613573565b60146020526000908152604090205460ff1681565b6103da61068a3660046134a0565b61168e565b6103da61069d3660046134a0565b6116dd565b6103906106b036600461353e565b6116ea565b6106c86106c3366004613573565b61173b565b6040805194855260208501939093529183015260608201526080016103a7565b6103da6106f6366004613573565b60176020526000908152604090205460ff1681565b61039061071936600461353e565b6117fe565b600d546104af906001600160a01b031681565b61039061073f366004613414565b6119db565b61039061075236600461353e565b611dbe565b6103b96107653660046135c5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61039061079e366004613573565b611e6b565b600d546103da90600160a01b900460ff1681565b6103906107c5366004613573565b61201d565b6103906107d8366004613573565b6121ba565b6104af7f000000000000000000000000000000000000000000000000000000000000000081565b6103906108123660046134a0565b612219565b610390610825366004613590565b612418565b6103b9610838366004613573565b60196020526000908152604090205481565b6103da610858366004613573565b60126020526000908152604090205460ff1681565b6103b961087b366004613573565b601a6020526000908152604090205481565b6005546001600160a01b036101009091041633146108c65760405162461bcd60e51b81526004016108bd906135f3565b60405180910390fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b60606003805461090090613628565b80601f016020809104026020016040519081016040528092919081815260200182805461092c90613628565b80156109795780601f1061094e57610100808354040283529160200191610979565b820191906000526020600020905b81548152906001019060200180831161095c57829003601f168201915b5050505050905090565b6000610990338484612503565b5060015b92915050565b60006109a7848484612628565b6109f984336109f485604051806060016040528060288152602001613a51602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190612c33565b612503565b5060019392505050565b6005546001600160a01b03610100909104163314610a335760405162461bcd60e51b81526004016108bd906135f3565b60008111610aa95760405162461bcd60e51b815260206004820152603f60248201527f546178546f6b656e2e736f6c3a3a7570646174654d617857616c6c657453697a60448201527f652829205f6d617857616c6c657453697a65206d75737420626520677420300060648201526084016108bd565b60055460ff16610aba90600a61375c565b610ac4908261376b565b600e8190556040519081527f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109909185906109f490866124f0565b6005546001600160a01b03610100909104163314610b665760405162461bcd60e51b81526004016108bd906135f3565b60115460ff16610b8e57610b8e610b893060009081526020819052604090205490565b612c5f565b565b6005546001600160a01b03610100909104163314610bc05760405162461bcd60e51b81526004016108bd906135f3565b600b5460ff16610c385760405162461bcd60e51b815260206004820152603d60248201527f546178546f6b656e2e736f6c3a3a7768656e50617573656428292c20436f6e7460448201527f72616374206973206e6f742063757272656e746c79207061757365642e00000060648201526084016108bd565b600b805460ff191690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a1565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b03161480610cbb57503360009081526017602052604090205460ff1615156001145b610cd75760405162461bcd60e51b81526004016108bd90613782565b610ce18282612d36565b5050565b6005546001600160a01b03610100909104163314610d155760405162461bcd60e51b81526004016108bd906135f3565b6107d0811115610d8d5760405162461bcd60e51b815260206004820152603860248201527f546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e74735460448201527f617828292c205f627074203e20323030302028323025292e000000000000000060648201526084016108bd565b600d54600160a01b900460ff1615610e0f576040805162461bcd60e51b81526020600482015260248101919091527f546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e74735460448201527f617828292c205461786174696f6e20686173206265656e2072656d6f7665642e60648201526084016108bd565b60ff909116600090815260166020526040902055565b6005546001600160a01b03610100909104163314610e555760405162461bcd60e51b81526004016108bd906135f3565b60008111610ecb5760405162461bcd60e51b815260206004820152603b60248201527f546178546f6b656e2e736f6c3a3a7570646174654d61785478416d6f756e742860448201527f29205f6d61785478416d6f756e74206d7573742062652067742030000000000060648201526084016108bd565b60055460ff16610edc90600a61375c565b610ee6908261376b565b600f8190556040519081527fff3dd5e80294197918c284bbfc3dadd97d0b40ce92106110946329088f80068a90602001610af5565b6005546001600160a01b03610100909104163314610f4b5760405162461bcd60e51b81526004016108bd906135f3565b6001600160a01b038216610fba5760405162461bcd60e51b815260206004820152603060248201527f546178546f6b656e2e736f6c3a3a757064617465417574686f72697a65644c6960448201526f073742829205f6f776e6572203d3d20360841b60648201526084016108bd565b6001600160a01b03821660009081526017602052604090205460ff1615158115151461105d5760405162461bcd60e51b815260206004820152604660248201527f546178546f6b656e2e736f6c3a3a757064617465417574686f72697a65644c6960448201527f73742829205f6163636f756e7420697320616c72656164792073657420746f206064820152655f737461746560d01b608482015260a4016108bd565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f351731b7072c47dd7498a1db554905beb804daf2833acfabd6e954d1fac65cfd910160405180910390a25050565b6005546001600160a01b036101009091041633146110ec5760405162461bcd60e51b81526004016108bd906135f3565b600c546001600160a01b03908116908216036111705760405162461bcd60e51b815260206004820152603a60248201527f546178546f6b656e2e736f6c3a3a73657456657374696e67282920616c72656160448201527f64792073657420746f207472656173757279206164647265737300000000000060648201526084016108bd565b6001600160a01b0381166111ec5760405162461bcd60e51b815260206004820152603860248201527f546178546f6b656e2e736f6c3a3a73657456657374696e67282920747265617360448201527f7572792063616e6e6f742062652061646472657373283029000000000000000060648201526084016108bd565b600c80546001600160a01b0319166001600160a01b03831690811790915561121590600161088d565b600c546040805163022b1d8960e21b815290516000926001600160a01b0316916308ac76249160048083019260209291908290030181865afa15801561125f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128391906137df565b600c5490915061129c906001600160a01b031682612d36565b600c54604080516001600160a01b03928316815291841660208301527fa596bfd2fd3f8533a574f9df13f553b4d5751c65c233b974b15fa91891857f3e910160405180910390a15050565b6005546001600160a01b036101009091041633146113175760405162461bcd60e51b81526004016108bd906135f3565b60038160ff16106113905760405162461bcd60e51b815260206004820152603e60248201527f546178546f6b656e3a3a75706461746553656e6465725461785479706528292c60448201527f205f74617854797065206d757374206265206c657373207468616e20332e000060648201526084016108bd565b6001600160a01b03919091166000908152601460205260409020805460ff191660ff909216919091179055565b6005546001600160a01b036101009091041633146113ed5760405162461bcd60e51b81526004016108bd906135f3565b60055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6005546001600160a01b0361010090910416331461146d5760405162461bcd60e51b81526004016108bd906135f3565b3361147a600b5460ff1690565b158061149e57506001600160a01b03811660009081526013602052604090205460ff165b6115105760405162461bcd60e51b815260206004820152603f60248201527f546178546f6b656e2e736f6c3a3a7768656e4e6f74506175736564556e69282960448201527f2c20436f6e74726163742069732063757272656e746c79207061757365642e0060648201526084016108bd565b600b805460ff191660011790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610af5565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b0316148061159157503360009081526017602052604090205460ff1615156001145b6115ad5760405162461bcd60e51b81526004016108bd90613782565b6115b78282612d36565b6001600160a01b038216600090815260196020526040812080548392906115df9084906137f8565b90915550506001600160a01b0382166000908152601a60205260408120805483929061160c9084906137f8565b90915550505050565b60606004805461090090613628565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b0316148061166857503360009081526017602052604090205460ff1615156001145b6116845760405162461bcd60e51b81526004016108bd90613782565b610ce18282612e15565b600061099033846109f485604051806060016040528060258152602001613a79602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190612c33565b6000610990338484612628565b6005546001600160a01b0361010090910416331461171a5760405162461bcd60e51b81526004016108bd906135f3565b60055460ff1661172b90600a61375c565b611735908261376b565b60105550565b6040516370a0823160e01b81526001600160a01b0382166004820152600090819081908190819030906370a0823190602401602060405180830381865afa15801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae91906137df565b6001600160a01b0387166000908152601960205260408120549192506117d4828461380b565b6001600160a01b03989098166000908152601a602052604090205492989197965091945092505050565b6005546001600160a01b0361010090910416331461182e5760405162461bcd60e51b81526004016108bd906135f3565b80602a146118965760405162461bcd60e51b815260206004820152602f60248201527f546178546f6b656e3a3a7065726d616e656e746c7952656d6f7665546178657360448201526e141496102fb5b2bc90109e901a191760891b60648201526084016108bd565b600d54600160a01b900460ff16156119275760405162461bcd60e51b815260206004820152604860248201527f546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e74735460448201527f617828292c205461786174696f6e2068617320616c7265616479206265656e206064820152673932b6b7bb32b21760c11b608482015260a4016108bd565b601660205260007f0263c2b778d062355049effc2dece97bc6547ff8a88a3258daa512061c2153dd8190557f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf49819055600281527fcaff291fe014adc6b72a172705750b4cabe8f8667664d2924a166caab2885648819055600d805460ff60a01b1916600160a01b1790556040517fc75f57ef1bbf80f914dce2d672e5f9474567b8de900e1580de72874d08ff86b99190a150565b6005546001600160a01b03610100909104163314611a0b5760405162461bcd60e51b81526004016108bd906135f3565b8015611d93576001600160a01b03821660009081526013602052604090205460ff1615611a9d5760405162461bcd60e51b815260206004820152604660248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c69737420612077686974656c6973746564206064820152651dd85b1b195d60d21b608482015260a4016108bd565b600b546001600160a01b03610100909104811690831603611b145760405162461bcd60e51b815260206004820152603a60248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c69737420747265617375727900000000000060648201526084016108bd565b600d546001600160a01b0390811690831603611b865760405162461bcd60e51b815260206004820152603b60248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c697374206465706f7369746f72000000000060648201526084016108bd565b600c546001600160a01b0390811690831603611bf85760405162461bcd60e51b815260206004820152603960248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c6973742076657374696e670000000000000060648201526084016108bd565b737a250d5630b4cf539739df2c5dacb4c659f2488c196001600160a01b03831601611c875760405162461bcd60e51b8152602060048201526044602482018190526000805160206139e9833981519152908201527f2063616e6e6f7420626c61636b6c6973742074686520556e697377617020524f6064820152632aaa22a960e11b608482015260a4016108bd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611d275760405162461bcd60e51b815260206004820152604260248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c6973742074686520556e697377617020504160648201526124a960f11b608482015260a4016108bd565b306001600160a01b03831603611d935760405162461bcd60e51b815260206004820152603f60248201526000805160206139e983398151915260448201527f2063616e6e6f7420626c61636b6c697374207468697320636f6e74726163740060648201526084016108bd565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b03610100909104163314611dee5760405162461bcd60e51b81526004016108bd906135f3565b60058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055611e2881426137f8565b60075560055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6005546001600160a01b03610100909104163314611e9b5760405162461bcd60e51b81526004016108bd906135f3565b600b546001600160a01b03610100909104811690821603611f245760405162461bcd60e51b815260206004820152603b60248201527f546178546f6b656e2e736f6c3a3a7365745472656173757279282920616c726560448201527f6164792073657420746f2074726561737572792061646472657373000000000060648201526084016108bd565b6001600160a01b038116611fa05760405162461bcd60e51b815260206004820152603960248201527f546178546f6b656e2e736f6c3a3a73657454726561737572792829207472656160448201527f737572792063616e6e6f7420626520616464726573732830290000000000000060648201526084016108bd565b600b8054610100600160a81b0319166101006001600160a01b0384811682029290921792839055611fd4920416600161088d565b600b54604080516001600160a01b036101009093048316815291831660208301527f4ab5be82436d353e61ca18726e984e561f5c1cc7c6d38b29d2553c790434705a9101610af5565b6005546001600160a01b0361010090910416331461204d5760405162461bcd60e51b81526004016108bd906135f3565b600d546001600160a01b03908116908216036120d15760405162461bcd60e51b815260206004820152603c60248201527f546178546f6b656e2e736f6c3a3a7365746465706f7369746f72282920616c7260448201527f656164792073657420746f20747265617375727920616464726573730000000060648201526084016108bd565b6001600160a01b03811661214d5760405162461bcd60e51b815260206004820152603a60248201527f546178546f6b656e2e736f6c3a3a7365746465706f7369746f7228292074726560448201527f61737572792063616e6e6f74206265206164647265737328302900000000000060648201526084016108bd565b600d80546001600160a01b0319166001600160a01b03831690811790915561217690600061088d565b600d54604080516001600160a01b03928316815291831660208301527f830becdc16911bd35301d7e36682bb0bf344b313f5406e9eb6d8632a349763449101610af5565b6005546001600160a01b036101009091041633146121ea5760405162461bcd60e51b81526004016108bd906135f3565b6001600160a01b0381166000908152601360205260409020805460ff1916600117905561221681612f19565b50565b60055461010090046001600160a01b03166001600160a01b0316336001600160a01b0316148061225d57503360009081526017602052604090205460ff1615156001145b6122795760405162461bcd60e51b81526004016108bd90613782565b6001600160a01b0382166122f55760405162461bcd60e51b815260206004820152603a60248201527f546178546f6b656e2e736f6c3a3a696e6475737472794275726e28292c20436160448201527f6e6e6f74206275726e20746f207a65726f20616464726573732e00000000000060648201526084016108bd565b80612315836001600160a01b031660009081526020819052604090205490565b10156123975760405162461bcd60e51b815260206004820152604560248201527f546178546f6b656e2e736f6c3a3a696e6475737472794275726e28292c20496e60448201527f73756666696369656e742062616c616e6365206f66202450524f564520746f20606482015264313ab9371760d91b608482015260a4016108bd565b6001600160a01b03821660009081526019602052604090205481116123f3576123c08282612e15565b6001600160a01b038216600090815260196020526040812080548392906123e890849061380b565b90915550610ce19050565b6123fd8282612e15565b506001600160a01b0316600090815260196020526040812055565b6005546001600160a01b036101009091041633146124485760405162461bcd60e51b81526004016108bd906135f3565b60038160ff16106124c3576040805162461bcd60e51b81526020600482015260248101919091527f546178546f6b656e3a3a7570646174655265636569766572546178547970652860448201527f292c205f74617854797065206d757374206265206c657373207468616e20332e60648201526084016108bd565b6001600160a01b03919091166000908152601560205260409020805460ff191660ff909216919091179055565b60006124fc82846137f8565b9392505050565b6001600160a01b0383166125655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108bd565b6001600160a01b0382166125c65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108bd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000612636600b5460ff1690565b158061265a57506001600160a01b03841660009081526013602052604090205460ff165b8061267d57506001600160a01b03831660009081526013602052604090205460ff165b8061269757503360009081526013602052604090205460ff165b6127095760405162461bcd60e51b815260206004820152603760248201527f546178546f6b656e2e736f6c3a3a5f7472616e73666572282920636f6e74726160448201527f63742069732063757272656e746c79207061757365642e00000000000000000060648201526084016108bd565b81612729856001600160a01b031660009081526020819052604090205490565b101561278a5760405162461bcd60e51b815260206004820152602a60248201527f546178546f6b656e3a3a5f7472616e73666572282920696e73756666696369656044820152696e742062616c616e636560b01b60648201526084016108bd565b600082116127f65760405162461bcd60e51b815260206004820152603360248201527f546178546f6b656e3a3a5f7472616e73666572282920616d6f756e74206d75736044820152720742062652067726561746572207468616e203606c1b60648201526084016108bd565b6001600160a01b03831660009081526013602052604090205460ff1615801561283857506001600160a01b03841660009081526013602052604090205460ff16155b801561285457503360009081526013602052604090205460ff16155b801561286957506001600160a01b0384163014155b15612c225781600f5410156128d95760405162461bcd60e51b815260206004820152603060248201527f546178546f6b656e3a3a5f7472616e73666572282920616d6f756e742065786360448201526f1959591cc81b585e151e105b5bdd5b9d60821b60648201526084016108bd565b6001600160a01b03841660009081526012602052604090205460ff16156129565760405162461bcd60e51b815260206004820152602b60248201527f546178546f6b656e3a3a5f7472616e7366657228292073656e6465722069732060448201526a189b1858dadb1a5cdd195960aa1b60648201526084016108bd565b6001600160a01b03831660009081526012602052604090205460ff16156129d55760405162461bcd60e51b815260206004820152602d60248201527f546178546f6b656e3a3a5f7472616e736665722829207265636569766572206960448201526c1cc8189b1858dadb1a5cdd1959609a1b60648201526084016108bd565b6001600160a01b03841660009081526014602052604090205460ff1615612a1457506001600160a01b03831660009081526014602052604090205460ff165b6001600160a01b03831660009081526015602052604090205460ff1615612a5357506001600160a01b03821660009081526015602052604090205460ff165b60ff811660009081526016602052604081205461271090612a74908561376b565b612a7e919061381e565b90506000612a8c828561380b565b905083612a9982846137f8565b14612af85760405162461bcd60e51b815260206004820152602960248201527f546178546f6b656e3a3a5f7472616e73666572282920637269746963616c206d60448201526830ba341032b93937b960b91b60648201526084016108bd565b8260ff16600214158015612b1a5750600d546001600160a01b03868116911614155b15612bb757600e5481612b42876001600160a01b031660009081526020819052604090205490565b612b4c91906137f8565b1115612bb75760405162461bcd60e51b815260206004820152603460248201527f546178546f6b656e3a3a5f7472616e73666572282920616d6f756e74206578636044820152731959591cc81b585e15d85b1b195d105b5bdd5b9d60621b60648201526084016108bd565b8260ff166002148015612bcd575060115460ff16155b15612c055730600090815260208190526040902054600f54811115612bf15750600f545b6010548110612c0357612c0381612c5f565b505b612c10868683613015565b612c1b863084613015565b5050612c2d565b612c2d848484613015565b50505050565b60008184841115612c575760405162461bcd60e51b81526004016108bd9190613452565b505050900390565b6011805460ff191660011790556000612c7782613198565b90508015612d2857600b54604051630eab2cb760e31b8152600481018390526101009091046001600160a01b03169063755965b890602401600060405180830381600087803b158015612cc957600080fd5b505af1158015612cdd573d6000803e3d6000fd5b5050600b546040518481526101009091046001600160a01b031692507f831f3151ac4fe05e9e25607e80c8710ed1dbc868f9edf4c2852b87d14eec373b915060200160405180910390a25b50506011805460ff19169055565b6001600160a01b038216612d8c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108bd565b600254612d9990826124f0565b6002556001600160a01b038216600090815260208190526040902054612dbf90826124f0565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6001600160a01b038216612e755760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108bd565b612eb281604051806060016040528060228152602001613a09602291396001600160a01b0385166000908152602081905260409020549190612c33565b6001600160a01b038316600090815260208190526040902055600254612ed890826133f3565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001612e09565b6005546001600160a01b03610100909104163314612f495760405162461bcd60e51b81526004016108bd906135f3565b6001600160a01b038116612fae5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108bd565b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166130795760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108bd565b6001600160a01b0382166130db5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108bd565b61311881604051806060016040528060268152602001613a2b602691396001600160a01b0386166000908152602081905260409020549190612c33565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461314790826124f0565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161261b565b6040805160028082526060820183526000928392919060208301908036833701905050905030816000815181106131d1576131d1613856565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613243573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613267919061386c565b8160018151811061327a5761327a613856565b60200260200101906001600160a01b031690816001600160a01b0316815250506132b930737a250d5630b4cf539739df2c5dacb4c659f2488d85612503565b60405163d06ca61f60e01b8152600090737a250d5630b4cf539739df2c5dacb4c659f2488d9063d06ca61f906132f590879086906004016138cd565b600060405180830381865afa158015613312573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261333a91908101906138ee565b600b54909150737a250d5630b4cf539739df2c5dacb4c659f2488d90635c11d795908690600090869061010090046001600160a01b031661337d4261012c6137f8565b6040518663ffffffff1660e01b815260040161339d9594939291906139ac565b600060405180830381600087803b1580156133b757600080fd5b505af11580156133cb573d6000803e3d6000fd5b50505050806001815181106133e2576133e2613856565b602002602001015192505050919050565b60006124fc828461380b565b6001600160a01b038116811461221657600080fd5b6000806040838503121561342757600080fd5b8235613432816133ff565b91506020830135801515811461344757600080fd5b809150509250929050565b600060208083528351808285015260005b8181101561347f57858101830151858201604001528201613463565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156134b357600080fd5b82356134be816133ff565b946020939093013593505050565b803560ff811681146134dd57600080fd5b919050565b6000602082840312156134f457600080fd5b6124fc826134cc565b60008060006060848603121561351257600080fd5b833561351d816133ff565b9250602084013561352d816133ff565b929592945050506040919091013590565b60006020828403121561355057600080fd5b5035919050565b6000806040838503121561356a57600080fd5b6134be836134cc565b60006020828403121561358557600080fd5b81356124fc816133ff565b600080604083850312156135a357600080fd5b82356135ae816133ff565b91506135bc602084016134cc565b90509250929050565b600080604083850312156135d857600080fd5b82356135e3816133ff565b91506020830135613447816133ff565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061363c57607f821691505b60208210810361365c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156136b357816000190482111561369957613699613662565b808516156136a657918102915b93841c939080029061367d565b509250929050565b6000826136ca57506001610994565b816136d757506000610994565b81600181146136ed57600281146136f757613713565b6001915050610994565b60ff84111561370857613708613662565b50506001821b610994565b5060208310610133831016604e8410600b8410161715613736575081810a610994565b6137408383613678565b806000190482111561375457613754613662565b029392505050565b60006124fc60ff8416836136bb565b808202811582820484141761099457610994613662565b6020808252603d908201527f546178546f6b656e2e736f6c3a3a6f6e6c79417574686f72697a656428292c2060408201527f6d73672e73656e646572206973206e6f7420617574686f72697a65642e000000606082015260800190565b6000602082840312156137f157600080fd5b5051919050565b8082018082111561099457610994613662565b8181038181111561099457610994613662565b60008261383b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561387e57600080fd5b81516124fc816133ff565b600081518084526020808501945080840160005b838110156138c25781516001600160a01b03168752958201959082019060010161389d565b509495945050505050565b8281526040602082015260006138e66040830184613889565b949350505050565b6000602080838503121561390157600080fd5b825167ffffffffffffffff8082111561391957600080fd5b818501915085601f83011261392d57600080fd5b81518181111561393f5761393f613840565b8060051b604051601f19603f8301168101818110858211171561396457613964613840565b60405291825284820192508381018501918883111561398257600080fd5b938501935b828510156139a057845184529385019392850192613987565b98975050505050505050565b85815284602082015260a0604082015260006139cb60a0830186613889565b6001600160a01b039490941660608301525060800152939250505056fe546178546f6b656e2e736f6c3a3a6d6f64696679426c61636b6c69737428292c45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f6afa79d2dd6dc16daa6196b4a596cb84785ca65de715a6382c40987a3939e4c64736f6c63430008110033", + "sourceMap": "828:24476:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19574:130;;;;;;:::i;:::-;;:::i;:::-;;8607:91:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1583:38:16;;;;;;;;;1270:25:32;;;1258:2;1243:18;1583:38:16;1124:177:32;10753:169:21;;;;;;:::i;:::-;;:::i;:::-;;;1791:14:32;;1784:22;1766:41;;1754:2;1739:18;10753:169:21;1626:187:32;2496:45:16;;;;;;:::i;:::-;;;;;;;;;;;;;;9706:108:21;9794:12;;9706:108;;11404:321;;;;;;:::i;:::-;;:::i;18883:298:16:-;;;;;;:::i;:::-;;:::i;9550:91:21:-;9624:9;;;;9550:91;;;2984:4:32;2972:17;;;2954:36;;2942:2;2927:18;9550:91:21;2812:184:32;24030:115:16;24131:4;24086:7;9978:18:21;;;;;;;;;;;24030:115:16;;12134:218:21;;;;;;:::i;:::-;;:::i;14792:263:16:-;;;:::i;11590:119::-;;;:::i;21508:114::-;;;;;;:::i;:::-;;:::i;1188:22::-;;;;;-1:-1:-1;;;;;1188:22:16;;;;;;-1:-1:-1;;;;;3165:32:32;;;3147:51;;3135:2;3120:18;1188:22:16;3001:203:32;13577:319:16;;;;;;:::i;:::-;;:::i;11813:86::-;11884:7;;;;11813:86;;1158:23;;;;;;;;-1:-1:-1;;;;;1158:23:16;;;18347:278;;;;;;:::i;:::-;;:::i;1250:81::-;;1289:42;1250:81;;15366:408;;;;;;:::i;:::-;;:::i;16555:492::-;;;;;;:::i;:::-;;:::i;12344:231::-;;;;;;:::i;:::-;;:::i;9877:127:21:-;;;;;;:::i;:::-;-1:-1:-1;;;;;9978:18:21;9951:7;9978:18;;;;;;;;;;;;9877:127;1815:148:20;;;:::i;11332:132:16:-;;;:::i;1548:26::-;;;;;;1164:87:20;1237:6;;;;;-1:-1:-1;;;;;1237:6:20;1164:87;;22672:222:16;;;;;;:::i;:::-;;:::i;1513:28::-;;;;;;8817:95:21;;;:::i;2231:44:16:-;;;;;;:::i;:::-;;;;;;;;;;;;;;2109:48;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1834:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;21935:114;;;;;;:::i;:::-;;:::i;1980:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12855:269:21;;;;;;:::i;:::-;;:::i;10217:175::-;;;;;;:::i;:::-;;:::i;17916:148:16:-;;;;;;:::i;:::-;;:::i;24759:542::-;;;;;;:::i;:::-;;:::i;:::-;;;;4269:25:32;;;4325:2;4310:18;;4303:34;;;;4353:18;;;4346:34;4411:2;4396:18;;4389:34;4256:3;4241:19;24759:542:16;4038:391:32;2354:42:16;;;;;;:::i;:::-;;;;;;;;;;;;;;;;14165:429;;;;;;:::i;:::-;;:::i;1217:24::-;;;;;-1:-1:-1;;;;;1217:24:16;;;20148:952;;;;;;:::i;:::-;;:::i;2444:226:20:-;;;;;;:::i;:::-;;:::i;10455:151:21:-;;;;;;:::i;:::-;-1:-1:-1;;;;;10571:18:21;;;10544:7;10571:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10455:151;15965:404:16;;;;;;:::i;:::-;;:::i;1387:24::-;;;;;-1:-1:-1;;;1387:24:16;;;;;;17224:464;;;;;;:::i;:::-;;:::i;14624:160::-;;;;;;:::i;:::-;;:::i;1338:40::-;;;;;23211:562;;;;;;:::i;:::-;;:::i;12975:241::-;;;;;;:::i;:::-;;:::i;2550:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1680:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2700:54;;;;;;:::i;:::-;;;;;;;;;;;;;;19574:130;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;19663:18:16;;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:33;;-1:-1:-1;;19663:33:16::1;::::0;::::1;;::::0;;;::::1;::::0;;19574:130::o;8607:91:21:-;8652:13;8685:5;8678:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8607:91;:::o;10753:169::-;10836:4;10853:39;699:10:19;10876:7:21;10885:6;10853:8;:39::i;:::-;-1:-1:-1;10910:4:21;10753:169;;;;;:::o;11404:321::-;11510:4;11527:36;11537:6;11545:9;11556:6;11527:9;:36::i;:::-;11574:121;11583:6;699:10:19;11605:89:21;11643:6;11605:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11605:19:21;;;;;;:11;:19;;;;;;;;699:10:19;11605:33:21;;;;;;;;;;:37;:89::i;:::-;11574:8;:121::i;:::-;-1:-1:-1;11713:4:21;11404:321;;;;;:::o;18883:298:16:-;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;18991:1:16::1;18974:14;:18;18966:94;;;::::0;-1:-1:-1;;;18966:94:16;;5775:2:32;18966:94:16::1;::::0;::::1;5757:21:32::0;5814:2;5794:18;;;5787:30;5853:34;5833:18;;;5826:62;5924:33;5904:18;;;5897:61;5975:19;;18966:94:16::1;5573:427:32::0;18966:94:16::1;9624:9:21::0;;;;19107:16:16::1;::::0;:2:::1;:16;:::i;:::-;19090:33;::::0;:14;:33:::1;:::i;:::-;19073:13;:51:::0;;;19142:31:::1;::::0;1270:25:32;;;19142:31:16::1;::::0;1258:2:32;1243:18;19142:31:16::1;;;;;;;;18883:298:::0;:::o;12134:218:21:-;699:10:19;12222:4:21;12271:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12271:34:21;;;;;;;;;;12222:4;;12239:83;;12262:7;;12271:50;;12310:10;12271:38;:50::i;14792:263:16:-;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;14908:6:16::1;::::0;::::1;;14903:82;;14931:42;14947:25;24131:4:::0;24086:7;9978:18:21;;;;;;;;;;;;24030:115:16;14947:25:::1;14931:15;:42::i;:::-;14792:263::o:0;11590:119::-;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;11884:7:16;;;;5934:82:::1;;;::::0;-1:-1:-1;;;5934:82:16;;7895:2:32;5934:82:16::1;::::0;::::1;7877:21:32::0;7934:2;7914:18;;;7907:30;7973:34;7953:18;;;7946:62;8044:31;8024:18;;;8017:59;8093:19;;5934:82:16::1;7693:425:32::0;5934:82:16::1;11650:7:::2;:15:::0;;-1:-1:-1;;11650:15:16::2;::::0;;11681:20:::2;::::0;11690:10:::2;3147:51:32::0;;11681:20:16::2;::::0;3135:2:32;3120:18;11681:20:16::2;;;;;;;11590:119::o:0;21508:114::-;1237:6:20;;;;;-1:-1:-1;;;;;1237:6:20;-1:-1:-1;;;;;6195:21:16;:10;-1:-1:-1;;;;;6195:21:16;;:55;;;-1:-1:-1;6231:10:16;6220:22;;;;:10;:22;;;;;;;;:30;;:22;:30;6195:55;6187:129;;;;-1:-1:-1;;;6187:129:16;;;;;;;:::i;:::-;21591:23:::1;21597:7;21606;21591:5;:23::i;:::-;21508:114:::0;;:::o;13577:319::-;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;13680:4:16::1;13672;:12;;13664:81;;;::::0;-1:-1:-1;;;13664:81:16;;8755:2:32;13664:81:16::1;::::0;::::1;8737:21:32::0;8794:2;8774:18;;;8767:30;8833:34;8813:18;;;8806:62;8904:26;8884:18;;;8877:54;8948:19;;13664:81:16::1;8553:420:32::0;13664:81:16::1;13765:12;::::0;-1:-1:-1;;;13765:12:16;::::1;;;13764:13;13756:90;;;::::0;;-1:-1:-1;;;13756:90:16;;9180:2:32;13756:90:16::1;::::0;::::1;9162:21:32::0;9199:18;;;9192:30;;;;9258:34;9238:18;;;9231:62;9329:34;9309:18;;;9302:62;9381:19;;13756:90:16::1;8978:428:32::0;13756:90:16::1;13857:24;::::0;;::::1;;::::0;;;:14:::1;:24;::::0;;;;:31;13577:319::o;18347:278::-;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;18449:1:16::1;18434:12;:16;18426:88;;;::::0;-1:-1:-1;;;18426:88:16;;9613:2:32;18426:88:16::1;::::0;::::1;9595:21:32::0;9652:2;9632:18;;;9625:30;9691:34;9671:18;;;9664:62;9762:29;9742:18;;;9735:57;9809:19;;18426:88:16::1;9411:423:32::0;18426:88:16::1;9624:9:21::0;;;;18557:16:16::1;::::0;:2:::1;:16;:::i;:::-;18542:31;::::0;:12;:31:::1;:::i;:::-;18527:11;:47:::0;;;18592:25:::1;::::0;1270::32;;;18592::16::1;::::0;1258:2:32;1243:18;18592:25:16::1;1124:177:32::0;15366:408:16;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;-1:-1:-1;;;;;15465:22:16;::::1;15457:83;;;::::0;-1:-1:-1;;;15457:83:16;;10041:2:32;15457:83:16::1;::::0;::::1;10023:21:32::0;10080:2;10060:18;;;10053:30;10119:34;10099:18;;;10092:62;-1:-1:-1;;;10170:18:32;;;10163:46;10226:19;;15457:83:16::1;9839:412:32::0;15457:83:16::1;-1:-1:-1::0;;;;;15559:20:16;::::1;;::::0;;;:10:::1;:20;::::0;;;;;::::1;;:30;;::::0;::::1;;;15551:113;;;::::0;-1:-1:-1;;;15551:113:16;;10458:2:32;15551:113:16::1;::::0;::::1;10440:21:32::0;10497:2;10477:18;;;10470:30;10536:34;10516:18;;;10509:62;10607:34;10587:18;;;10580:62;-1:-1:-1;;;10658:19:32;;;10651:37;10705:19;;15551:113:16::1;10256:474:32::0;15551:113:16::1;-1:-1:-1::0;;;;;15677:20:16;::::1;;::::0;;;:10:::1;:20;::::0;;;;;;;;:29;;-1:-1:-1;;15677:29:16::1;::::0;::::1;;::::0;;::::1;::::0;;;15724:42;;1766:41:32;;;15724:42:16::1;::::0;1739:18:32;15724:42:16::1;;;;;;;15366:408:::0;;:::o;16555:492::-;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;16643:7:16::1;::::0;-1:-1:-1;;;;;16643:7:16;;::::1;16631:19:::0;;::::1;::::0;16623:90:::1;;;::::0;-1:-1:-1;;;16623:90:16;;10937:2:32;16623:90:16::1;::::0;::::1;10919:21:32::0;10976:2;10956:18;;;10949:30;11015:34;10995:18;;;10988:62;11086:28;11066:18;;;11059:56;11132:19;;16623:90:16::1;10735:422:32::0;16623:90:16::1;-1:-1:-1::0;;;;;16732:22:16;::::1;16724:91;;;::::0;-1:-1:-1;;;16724:91:16;;11364:2:32;16724:91:16::1;::::0;::::1;11346:21:32::0;11403:2;11383:18;;;11376:30;11442:34;11422:18;;;11415:62;11513:26;11493:18;;;11486:54;11557:19;;16724:91:16::1;11162:420:32::0;16724:91:16::1;16828:7;:18:::0;;-1:-1:-1;;;;;;16828:18:16::1;-1:-1:-1::0;;;;;16828:18:16;::::1;::::0;;::::1;::::0;;;16857:30:::1;::::0;-1:-1:-1;16857:15:16::1;:30::i;:::-;16926:7;::::0;16917:38:::1;::::0;;-1:-1:-1;;;16917:38:16;;;;16900:14:::1;::::0;-1:-1:-1;;;;;16926:7:16::1;::::0;16917:36:::1;::::0;:38:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;16926:7;16917:38:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16972:7;::::0;16900:55;;-1:-1:-1;16966:22:16::1;::::0;-1:-1:-1;;;;;16972:7:16::1;16900:55:::0;16966:5:::1;:22::i;:::-;17021:7;::::0;17006:33:::1;::::0;;-1:-1:-1;;;;;17021:7:16;;::::1;11988:34:32::0;;12058:15;;;12053:2;12038:18;;12031:43;17006:33:16::1;::::0;11923:18:32;17006:33:16::1;;;;;;;16612:435;16555:492:::0;:::o;12344:231::-;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;12455:1:16::1;12444:8;:12;;;12436:87;;;::::0;-1:-1:-1;;;12436:87:16;;12287:2:32;12436:87:16::1;::::0;::::1;12269:21:32::0;12326:2;12306:18;;;12299:30;12365:34;12345:18;;;12338:62;12436:32;12416:18;;;12409:60;12486:19;;12436:87:16::1;12085:426:32::0;12436:87:16::1;-1:-1:-1::0;;;;;12534:22:16;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:33;;-1:-1:-1;;12534:33:16::1;;::::0;;::::1;::::0;;;::::1;::::0;;12344:231::o;1815:148:20:-;1237:6;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;1906:6:::1;::::0;1885:40:::1;::::0;1922:1:::1;::::0;1906:6:::1;::::0;::::1;-1:-1:-1::0;;;;;1906:6:20::1;::::0;1885:40:::1;::::0;1922:1;;1885:40:::1;1936:6;:19:::0;;-1:-1:-1;;;;;;1936:19:20::1;::::0;;1815:148::o;11332:132:16:-;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;11385:10:16::1;5055:8;11884:7:::0;;;;;11813:86;5055:8:::1;5054:9;:25;;;-1:-1:-1::0;;;;;;5067:12:16;::::1;;::::0;;;:9:::1;:12;::::0;;;;;::::1;;5054:25;5046:101;;;::::0;-1:-1:-1;;;5046:101:16;;12718:2:32;5046:101:16::1;::::0;::::1;12700:21:32::0;12757:2;12737:18;;;12730:30;12796:34;12776:18;;;12769:62;12867:33;12847:18;;;12840:61;12918:19;;5046:101:16::1;12516:427:32::0;5046:101:16::1;11408:7:::2;:14:::0;;-1:-1:-1;;11408:14:16::2;11418:4;11408:14;::::0;;11438:18:::2;::::0;11445:10:::2;3147:51:32::0;;11438:18:16::2;::::0;3135:2:32;3120:18;11438::16::2;3001:203:32::0;22672:222:16;1237:6:20;;;;;-1:-1:-1;;;;;1237:6:20;-1:-1:-1;;;;;6195:21:16;:10;-1:-1:-1;;;;;6195:21:16;;:55;;;-1:-1:-1;6231:10:16;6220:22;;;;:10;:22;;;;;;;;:30;;:22;:30;6195:55;6187:129;;;;-1:-1:-1;;;6187:129:16;;;;;;;:::i;:::-;22763:23:::1;22769:7;22778;22763:5;:23::i;:::-;-1:-1:-1::0;;;;;22799:23:16;::::1;;::::0;;;:14:::1;:23;::::0;;;;:34;;22826:7;;22799:23;:34:::1;::::0;22826:7;;22799:34:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;22844:31:16;::::1;;::::0;;;:22:::1;:31;::::0;;;;:42;;22879:7;;22844:31;:42:::1;::::0;22879:7;;22844:42:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;22672:222:16:o;8817:95:21:-;8864:13;8897:7;8890:14;;;;;:::i;21935:114:16:-;1237:6:20;;;;;-1:-1:-1;;;;;1237:6:20;-1:-1:-1;;;;;6195:21:16;:10;-1:-1:-1;;;;;6195:21:16;;:55;;;-1:-1:-1;6231:10:16;6220:22;;;;:10;:22;;;;;;;;:30;;:22;:30;6195:55;6187:129;;;;-1:-1:-1;;;6187:129:16;;;;;;;:::i;:::-;22018:23:::1;22024:7;22033;22018:5;:23::i;12855:269:21:-:0;12948:4;12965:129;699:10:19;12988:7:21;12997:96;13036:15;12997:96;;;;;;;;;;;;;;;;;699:10:19;12997:25:21;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12997:34:21;;;;;;;;;;;;:38;:96::i;10217:175::-;10303:4;10320:42;699:10:19;10344:9:21;10355:6;10320:9;:42::i;17916:148:16:-;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;9624:9:21;;;;18039:16:16::1;::::0;:2:::1;:16;:::i;:::-;18029:26;::::0;:7;:26:::1;:::i;:::-;18002:23;:54:::0;-1:-1:-1;17916:148:16:o;24759:542::-;24931:40;;-1:-1:-1;;;24931:40:16;;-1:-1:-1;;;;;3165:32:32;;24931:40:16;;;3147:51:32;24826:14:16;;;;;;;;;;24946:4;;24931:31;;3120:18:32;;24931:40:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25005:23:16;;24982:20;25005:23;;;:14;:23;;;;;;24912:59;;-1:-1:-1;25057:29:16;25005:23;24912:59;25057:29;:::i;:::-;-1:-1:-1;;;;;25261:31:16;;;;;;;;:22;:31;;;;;;25219:11;;25232:15;;;-1:-1:-1;25261:31:16;;-1:-1:-1;24759:542:16;-1:-1:-1;;;24759:542:16:o;14165:429::-;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;14246:4:16::1;14254:2;14246:10;14238:70;;;::::0;-1:-1:-1;;;14238:70:16;;13413:2:32;14238:70:16::1;::::0;::::1;13395:21:32::0;13452:2;13432:18;;;13425:30;13491:34;13471:18;;;13464:62;-1:-1:-1;;;13542:18:32;;;13535:45;13597:19;;14238:70:16::1;13211:411:32::0;14238:70:16::1;14328:12;::::0;-1:-1:-1;;;14328:12:16;::::1;;;14327:13;14319:98;;;::::0;-1:-1:-1;;;14319:98:16;;13829:2:32;14319:98:16::1;::::0;::::1;13811:21:32::0;13868:2;13848:18;;;13841:30;13907:34;13887:18;;;13880:62;13978:34;13958:18;;;13951:62;-1:-1:-1;;;14029:19:32;;;14022:39;14078:19;;14319:98:16::1;13627:476:32::0;14319:98:16::1;14428:14;:17;::::0;14448:1:::1;14428:17:::0;:21;;;14460:17;:21;;;14507:1:::1;14492:17:::0;;;:21;;;14524:12:::1;:19:::0;;-1:-1:-1;;;;14524:19:16::1;-1:-1:-1::0;;;14524:19:16::1;::::0;;14428:17;14561:25;::::1;::::0;14448:1;14561:25:::1;14165:429:::0;:::o;20148:952::-;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;20241:10:16::1;20237:814;;;-1:-1:-1::0;;;;;20277:18:16;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;20276:19;20268:102;;;::::0;-1:-1:-1;;;20268:102:16;;14310:2:32;20268:102:16::1;::::0;::::1;14292:21:32::0;14349:2;14329:18;;;14322:30;-1:-1:-1;;;;;;;;;;;14368:18:32;;;14361:62;14459:34;14439:18;;;14432:62;-1:-1:-1;;;14510:19:32;;;14503:37;14557:19;;20268:102:16::1;14108:474:32::0;20268:102:16::1;20404:8;::::0;-1:-1:-1;;;;;20404:8:16::1;::::0;;::::1;::::0;::::1;20393:19:::0;;::::1;::::0;20385:90:::1;;;::::0;-1:-1:-1;;;20385:90:16;;14789:2:32;20385:90:16::1;::::0;::::1;14771:21:32::0;14828:2;14808:18;;;14801:30;-1:-1:-1;;;;;;;;;;;14847:18:32;;;14840:62;14938:28;14918:18;;;14911:56;14984:19;;20385:90:16::1;14587:422:32::0;20385:90:16::1;20509:9;::::0;-1:-1:-1;;;;;20509:9:16;;::::1;20498:20:::0;;::::1;::::0;20490:92:::1;;;::::0;-1:-1:-1;;;20490:92:16;;15216:2:32;20490:92:16::1;::::0;::::1;15198:21:32::0;15255:2;15235:18;;;15228:30;-1:-1:-1;;;;;;;;;;;15274:18:32;;;15267:62;15365:29;15345:18;;;15338:57;15412:19;;20490:92:16::1;15014:423:32::0;20490:92:16::1;20616:7;::::0;-1:-1:-1;;;;;20616:7:16;;::::1;20605:18:::0;;::::1;::::0;20597:88:::1;;;::::0;-1:-1:-1;;;20597:88:16;;15644:2:32;20597:88:16::1;::::0;::::1;15626:21:32::0;15683:2;15663:18;;;15656:30;-1:-1:-1;;;;;;;;;;;15702:18:32;;;15695:62;15793:27;15773:18;;;15766:55;15838:19;;20597:88:16::1;15442:421:32::0;20597:88:16::1;-1:-1:-1::0;;;;;;;20708:23:16;::::1;::::0;20700:104:::1;;;::::0;-1:-1:-1;;;20700:104:16;;16070:2:32;20700:104:16::1;::::0;::::1;16052:21:32::0;16109:2;16089:18;;;16082:30;;;-1:-1:-1;;;;;;;;;;;16128:18:32;;;16121:62;16219:34;16199:18;;;16192:62;-1:-1:-1;;;16270:19:32;;;16263:35;16315:19;;20700:104:16::1;15868:472:32::0;20700:104:16::1;20838:15;-1:-1:-1::0;;;;;20827:26:16::1;:7;-1:-1:-1::0;;;;;20827:26:16::1;::::0;20819:105:::1;;;::::0;-1:-1:-1;;;20819:105:16;;16547:2:32;20819:105:16::1;::::0;::::1;16529:21:32::0;16586:2;16566:18;;;16559:30;-1:-1:-1;;;;;;;;;;;16605:18:32;;;16598:62;16696:34;16676:18;;;16669:62;-1:-1:-1;;;16747:19:32;;;16740:33;16790:19;;20819:105:16::1;16345:470:32::0;20819:105:16::1;20966:4;-1:-1:-1::0;;;;;20947:24:16;::::1;::::0;20939:100:::1;;;::::0;-1:-1:-1;;;20939:100:16;;17022:2:32;20939:100:16::1;::::0;::::1;17004:21:32::0;17061:2;17041:18;;;17034:30;-1:-1:-1;;;;;;;;;;;17080:18:32;;;17073:62;17171:33;17151:18;;;17144:61;17222:19;;20939:100:16::1;16820:427:32::0;20939:100:16::1;-1:-1:-1::0;;;;;21061:18:16;;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:31;;-1:-1:-1;;21061:31:16::1;::::0;::::1;;::::0;;;::::1;::::0;;20148:952::o;2444:226:20:-;1237:6;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;2525:6:::1;::::0;;2508:14:::1;:23:::0;;-1:-1:-1;;;;;;2508:23:20::1;-1:-1:-1::0;;;;;2525:6:20::1;::::0;::::1;;2508:23;::::0;;-1:-1:-1;;;;;;2542:19:20::1;::::0;;2584:22:::1;2602:4:::0;2584:15:::1;:22;:::i;:::-;2572:9;:34:::0;2643:6:::1;::::0;2622:40:::1;::::0;2659:1:::1;::::0;2643:6:::1;::::0;::::1;-1:-1:-1::0;;;;;2643:6:20::1;::::0;2622:40:::1;::::0;2659:1;;2622:40:::1;2444:226:::0;:::o;15965:404:16:-;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;16056:8:16::1;::::0;-1:-1:-1;;;;;16056:8:16::1;::::0;;::::1;::::0;::::1;16043:21:::0;;::::1;::::0;16035:93:::1;;;::::0;-1:-1:-1;;;16035:93:16;;17454:2:32;16035:93:16::1;::::0;::::1;17436:21:32::0;17493:2;17473:18;;;17466:30;17532:34;17512:18;;;17505:62;17603:29;17583:18;;;17576:57;17650:19;;16035:93:16::1;17252:423:32::0;16035:93:16::1;-1:-1:-1::0;;;;;16147:23:16;::::1;16139:93;;;::::0;-1:-1:-1;;;16139:93:16;;17882:2:32;16139:93:16::1;::::0;::::1;17864:21:32::0;17921:2;17901:18;;;17894:30;17960:34;17940:18;;;17933:62;18031:27;18011:18;;;18004:55;18076:19;;16139:93:16::1;17680:421:32::0;16139:93:16::1;16245:8;:20:::0;;-1:-1:-1;;;;;;16245:20:16::1;;-1:-1:-1::0;;;;;16245:20:16;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;16276:31:::1;::::0;16292:8:::1;;-1:-1:-1::0;16276:15:16::1;:31::i;:::-;16341:8;::::0;16325:36:::1;::::0;;-1:-1:-1;;;;;16341:8:16::1;::::0;;::::1;::::0;::::1;11988:34:32::0;;12058:15;;;12053:2;12038:18;;12031:43;16325:36:16::1;::::0;11923:18:32;16325:36:16::1;11776:304:32::0;17224:464:16;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;17318:9:16::1;::::0;-1:-1:-1;;;;;17318:9:16;;::::1;17304:23:::0;;::::1;::::0;17296:96:::1;;;::::0;-1:-1:-1;;;17296:96:16;;18308:2:32;17296:96:16::1;::::0;::::1;18290:21:32::0;18347:2;18327:18;;;18320:30;18386:34;18366:18;;;18359:62;18457:30;18437:18;;;18430:58;18505:19;;17296:96:16::1;18106:424:32::0;17296:96:16::1;-1:-1:-1::0;;;;;17411:24:16;::::1;17403:95;;;::::0;-1:-1:-1;;;17403:95:16;;18737:2:32;17403:95:16::1;::::0;::::1;18719:21:32::0;18776:2;18756:18;;;18749:30;18815:34;18795:18;;;18788:62;18886:28;18866:18;;;18859:56;18932:19;;17403:95:16::1;18535:422:32::0;17403:95:16::1;17511:9;:22:::0;;-1:-1:-1;;;;;;17511:22:16::1;-1:-1:-1::0;;;;;17511:22:16;::::1;::::0;;::::1;::::0;;;17544:33:::1;::::0;-1:-1:-1;17544:15:16::1;:33::i;:::-;17658:9;::::0;17641:39:::1;::::0;;-1:-1:-1;;;;;17658:9:16;;::::1;11988:34:32::0;;12058:15;;;12053:2;12038:18;;12031:43;17641:39:16::1;::::0;11923:18:32;17641:39:16::1;11776:304:32::0;14624:160:16;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;-1:-1:-1;;;;;14706:19:16;::::1;;::::0;;;:9:::1;:19;::::0;;;;:26;;-1:-1:-1;;14706:26:16::1;14728:4;14706:26;::::0;;14743:33:::1;14716:8:::0;14743:23:::1;:33::i;:::-;14624:160:::0;:::o;23211:562::-;1237:6:20;;;;;-1:-1:-1;;;;;1237:6:20;-1:-1:-1;;;;;6195:21:16;:10;-1:-1:-1;;;;;6195:21:16;;:55;;;-1:-1:-1;6231:10:16;6220:22;;;;:10;:22;;;;;;;;:30;;:22;:30;6195:55;6187:129;;;;-1:-1:-1;;;6187:129:16;;;;;;;:::i;:::-;-1:-1:-1;;;;;23310:21:16;::::1;23302:92;;;::::0;-1:-1:-1;;;23302:92:16;;19164:2:32;23302:92:16::1;::::0;::::1;19146:21:32::0;19203:2;19183:18;;;19176:30;19242:34;19222:18;;;19215:62;19313:28;19293:18;;;19286:56;19359:19;;23302:92:16::1;18962:422:32::0;23302:92:16::1;23435:7;23413:18;23423:7;-1:-1:-1::0;;;;;9978:18:21;9951:7;9978:18;;;;;;;;;;;;9877:127;23413:18:16::1;:29;;23405:111;;;::::0;-1:-1:-1;;;23405:111:16;;19591:2:32;23405:111:16::1;::::0;::::1;19573:21:32::0;19630:2;19610:18;;;19603:30;19669:34;19649:18;;;19642:62;19740:34;19720:18;;;19713:62;-1:-1:-1;;;19791:19:32;;;19784:36;19837:19;;23405:111:16::1;19389:473:32::0;23405:111:16::1;-1:-1:-1::0;;;;;23533:23:16;::::1;;::::0;;;:14:::1;:23;::::0;;;;;:34;-1:-1:-1;23529:237:16::1;;23584:23;23590:7;23599;23584:5;:23::i;:::-;-1:-1:-1::0;;;;;23622:23:16;::::1;;::::0;;;:14:::1;:23;::::0;;;;:34;;23649:7;;23622:23;:34:::1;::::0;23649:7;;23622:34:::1;:::i;:::-;::::0;;;-1:-1:-1;23529:237:16::1;::::0;-1:-1:-1;23529:237:16::1;;23689:23;23695:7;23704;23689:5;:23::i;:::-;-1:-1:-1::0;;;;;;23727:23:16::1;23753:1;23727:23:::0;;;:14:::1;:23;::::0;;;;:27;23211:562::o;12975:241::-;1237:6:20;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;13090:1:16::1;13079:8;:12;;;13071:89;;;::::0;;-1:-1:-1;;;13071:89:16;;20069:2:32;13071:89:16::1;::::0;::::1;20051:21:32::0;20088:18;;;20081:30;;;;20147:34;20127:18;;;20120:62;20218:34;20198:18;;;20191:62;20270:19;;13071:89:16::1;19867:428:32::0;13071:89:16::1;-1:-1:-1::0;;;;;13171:26:16;;;::::1;;::::0;;;:15:::1;:26;::::0;;;;:37;;-1:-1:-1;;13171:37:16::1;;::::0;;::::1;::::0;;;::::1;::::0;;12975:241::o;2486:98:21:-;2544:7;2571:5;2575:1;2571;:5;:::i;:::-;2564:12;2486:98;-1:-1:-1;;;2486:98:21:o;16012:346::-;-1:-1:-1;;;;;16114:19:21;;16106:68;;;;-1:-1:-1;;;16106:68:21;;20502:2:32;16106:68:21;;;20484:21:32;20541:2;20521:18;;;20514:30;20580:34;20560:18;;;20553:62;-1:-1:-1;;;20631:18:32;;;20624:34;20675:19;;16106:68:21;20300:400:32;16106:68:21;-1:-1:-1;;;;;16193:21:21;;16185:68;;;;-1:-1:-1;;;16185:68:21;;20907:2:32;16185:68:21;;;20889:21:32;20946:2;20926:18;;;20919:30;20985:34;20965:18;;;20958:62;-1:-1:-1;;;21036:18:32;;;21029:32;21078:19;;16185:68:21;20705:398:32;16185:68:21;-1:-1:-1;;;;;16266:18:21;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16318:32;;1270:25:32;;;16318:32:21;;1243:18:32;16318:32:21;;;;;;;;16012:346;;;:::o;7300:2624:16:-;7496:14;7532:8;11884:7;;;;;11813:86;7532:8;7531:9;:29;;;-1:-1:-1;;;;;;7544:16:16;;;;;;:9;:16;;;;;;;;7531:29;:47;;;-1:-1:-1;;;;;;7564:14:16;;;;;;:9;:14;;;;;;;;7531:47;:72;;;-1:-1:-1;7592:10:16;7582:21;;;;:9;:21;;;;;;;;7531:72;7523:140;;;;-1:-1:-1;;;7523:140:16;;21310:2:32;7523:140:16;;;21292:21:32;21349:2;21329:18;;;21322:30;21388:34;21368:18;;;21361:62;21459:25;21439:18;;;21432:53;21502:19;;7523:140:16;21108:419:32;7523:140:16;7702:7;7682:16;7692:5;-1:-1:-1;;;;;9978:18:21;9951:7;9978:18;;;;;;;;;;;;9877:127;7682:16:16;:27;;7674:82;;;;-1:-1:-1;;;7674:82:16;;21734:2:32;7674:82:16;;;21716:21:32;21773:2;21753:18;;;21746:30;21812:34;21792:18;;;21785:62;-1:-1:-1;;;21863:18:32;;;21856:40;21913:19;;7674:82:16;21532:406:32;7674:82:16;7785:1;7775:7;:11;7767:75;;;;-1:-1:-1;;;7767:75:16;;22145:2:32;7767:75:16;;;22127:21:32;22184:2;22164:18;;;22157:30;22223:34;22203:18;;;22196:62;-1:-1:-1;;;22274:18:32;;;22267:49;22333:19;;7767:75:16;21943:415:32;7767:75:16;-1:-1:-1;;;;;7926:14:16;;;;;;:9;:14;;;;;;;;7925:15;:36;;;;-1:-1:-1;;;;;;7945:16:16;;;;;;:9;:16;;;;;;;;7944:17;7925:36;:62;;;;-1:-1:-1;7976:10:16;7966:21;;;;:9;:21;;;;;;;;7965:22;7925:62;:88;;;;-1:-1:-1;;;;;;7991:22:16;;8008:4;7991:22;;7925:88;7921:1996;;;8056:7;8041:11;;:22;;8032:84;;;;-1:-1:-1;;;8032:84:16;;22565:2:32;8032:84:16;;;22547:21:32;22604:2;22584:18;;;22577:30;22643:34;22623:18;;;22616:62;-1:-1:-1;;;22694:18:32;;;22687:46;22750:19;;8032:84:16;22363:412:32;8032:84:16;-1:-1:-1;;;;;8141:16:16;;;;;;:9;:16;;;;;;;;8140:17;8131:74;;;;-1:-1:-1;;;8131:74:16;;22982:2:32;8131:74:16;;;22964:21:32;23021:2;23001:18;;;22994:30;23060:34;23040:18;;;23033:62;-1:-1:-1;;;23111:18:32;;;23104:41;23162:19;;8131:74:16;22780:407:32;8131:74:16;-1:-1:-1;;;;;8230:14:16;;;;;;:9;:14;;;;;;;;8229:15;8220:74;;;;-1:-1:-1;;;8220:74:16;;23394:2:32;8220:74:16;;;23376:21:32;23433:2;23413:18;;;23406:30;23472:34;23452:18;;;23445:62;-1:-1:-1;;;23523:18:32;;;23516:43;23576:19;;8220:74:16;23192:409:32;8220:74:16;-1:-1:-1;;;;;8386:20:16;;;;;;:13;:20;;;;;;;;:25;8382:109;;-1:-1:-1;;;;;;8443:20:16;;;;;;:13;:20;;;;;;;;8382:109;-1:-1:-1;;;;;8511:20:16;;;;;;:15;:20;;;;;;;;:25;8507:110;;-1:-1:-1;;;;;;8568:20:16;;;;;;:15;:20;;;;;;;;8507:110;8658:24;;;8633:12;8658:24;;;:14;:24;;;;;;8685:5;;8648:34;;:7;:34;:::i;:::-;:42;;;;:::i;:::-;8633:57;-1:-1:-1;8705:13:16;8721:17;8633:57;8721:7;:17;:::i;:::-;8705:33;-1:-1:-1;8785:7:16;8763:18;8705:33;8763:7;:18;:::i;:::-;:29;8755:83;;;;-1:-1:-1;;;8755:83:16;;24030:2:32;8755:83:16;;;24012:21:32;24069:2;24049:18;;;24042:30;24108:34;24088:18;;;24081:62;-1:-1:-1;;;24159:18:32;;;24152:39;24208:19;;8755:83:16;23828:405:32;8755:83:16;8985:8;:13;;8997:1;8985:13;;:33;;;;-1:-1:-1;9009:9:16;;-1:-1:-1;;;;;9002:16:16;;;9009:9;;9002:16;;8985:33;8981:181;;;9076:13;;9064:8;9047:14;9057:3;-1:-1:-1;;;;;9978:18:21;9951:7;9978:18;;;;;;;;;;;;9877:127;9047:14:16;:25;;;;:::i;:::-;:42;;9039:107;;;;-1:-1:-1;;;9039:107:16;;24440:2:32;9039:107:16;;;24422:21:32;24479:2;24459:18;;;24452:30;24518:34;24498:18;;;24491:62;-1:-1:-1;;;24569:18:32;;;24562:50;24629:19;;9039:107:16;24238:416:32;9039:107:16;9182:8;:13;;9194:1;9182:13;:24;;;;-1:-1:-1;9200:6:16;;;;9199:7;9182:24;9178:410;;;24131:4;9227:28;9978:18:21;;;;;;;;;;;9330:11:16;;9307:34;;9304:116;;;-1:-1:-1;9389:11:16;;9304:116;9468:23;;9444:20;:47;9440:133;;9516:37;9532:20;9516:15;:37::i;:::-;9208:380;9178:410;9604:37;9620:5;9627:3;9632:8;9604:15;:37::i;:::-;9708:46;9724:5;9739:4;9746:7;9708:15;:46::i;:::-;8015:1751;;7921:1996;;;9869:36;9885:5;9892:3;9897:7;9869:15;:36::i;:::-;7382:2542;7300:2624;;;:::o;4765:206:21:-;4851:7;4912:12;4904:6;;;;4896:29;;;;-1:-1:-1;;;4896:29:21;;;;;;;;:::i;:::-;-1:-1:-1;;;4947:5:21;;;4765:206::o;9932:362:16:-;6376:6;:13;;-1:-1:-1;;6376:13:16;6385:4;6376:13;;;:6;10041:40:::1;10059:21:::0;10041:17:::1;:40::i;:::-;10020:61:::0;-1:-1:-1;10098:14:16;;10094:193:::1;;10182:8;::::0;10172:50:::1;::::0;-1:-1:-1;;;10172:50:16;;::::1;::::0;::::1;1270:25:32::0;;;10182:8:16::1;::::0;;::::1;-1:-1:-1::0;;;;;10182:8:16::1;::::0;10172:38:::1;::::0;1243:18:32;;10172:50:16::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10254:8:16::1;::::0;10242:33:::1;::::0;1270:25:32;;;10254:8:16::1;::::0;;::::1;-1:-1:-1::0;;;;;10254:8:16::1;::::0;-1:-1:-1;10242:33:16::1;::::0;-1:-1:-1;1258:2:32;1243:18;10242:33:16::1;;;;;;;10094:193;-1:-1:-1::0;;6412:6:16;:14;;-1:-1:-1;;6412:14:16;;;9932:362::o;14445:378:21:-;-1:-1:-1;;;;;14529:21:21;;14521:65;;;;-1:-1:-1;;;14521:65:21;;24861:2:32;14521:65:21;;;24843:21:32;24900:2;24880:18;;;24873:30;24939:33;24919:18;;;24912:61;24990:18;;14521:65:21;24659:355:32;14521:65:21;14676:12;;:24;;14693:6;14676:16;:24::i;:::-;14661:12;:39;-1:-1:-1;;;;;14732:18:21;;:9;:18;;;;;;;;;;;:30;;14755:6;14732:22;:30::i;:::-;-1:-1:-1;;;;;14711:18:21;;:9;:18;;;;;;;;;;;:51;;;;14778:37;;1270:25:32;;;14711:18:21;;:9;;14778:37;;1243:18:32;14778:37:21;;;;;;;;14445:378;;:::o;15156:418::-;-1:-1:-1;;;;;15240:21:21;;15232:67;;;;-1:-1:-1;;;15232:67:21;;25221:2:32;15232:67:21;;;25203:21:32;25260:2;25240:18;;;25233:30;25299:34;25279:18;;;25272:62;-1:-1:-1;;;25350:18:32;;;25343:31;25391:19;;15232:67:21;25019:397:32;15232:67:21;15395:68;15418:6;15395:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15395:18:21;;:9;:18;;;;;;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;15374:18:21;;:9;:18;;;;;;;;;;:89;15489:12;;:24;;15506:6;15489:16;:24::i;:::-;15474:12;:39;15529:37;;1270:25:32;;;15555:1:21;;-1:-1:-1;;;;;15529:37:21;;;;;1258:2:32;1243:18;15529:37:21;1124:177:32;2118:244:20;1237:6;;-1:-1:-1;;;;;1237:6:20;;;;;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;-1:-1:-1;;;;;2207:22:20;::::1;2199:73;;;::::0;-1:-1:-1;;;2199:73:20;;25623:2:32;2199:73:20::1;::::0;::::1;25605:21:32::0;25662:2;25642:18;;;25635:30;25701:34;25681:18;;;25674:62;-1:-1:-1;;;25752:18:32;;;25745:36;25798:19;;2199:73:20::1;25421:402:32::0;2199:73:20::1;2309:6;::::0;2288:38:::1;::::0;-1:-1:-1;;;;;2288:38:20;;::::1;::::0;2309:6:::1;::::0;::::1;;::::0;2288:38:::1;::::0;;;::::1;2337:6;:17:::0;;-1:-1:-1;;;;;2337:17:20;;::::1;;;-1:-1:-1::0;;;;;;2337:17:20;;::::1;::::0;;;::::1;::::0;;2118:244::o;13614:549:21:-;-1:-1:-1;;;;;13720:20:21;;13712:70;;;;-1:-1:-1;;;13712:70:21;;26030:2:32;13712:70:21;;;26012:21:32;26069:2;26049:18;;;26042:30;26108:34;26088:18;;;26081:62;-1:-1:-1;;;26159:18:32;;;26152:35;26204:19;;13712:70:21;25828:401:32;13712:70:21;-1:-1:-1;;;;;13801:23:21;;13793:71;;;;-1:-1:-1;;;13793:71:21;;26436:2:32;13793:71:21;;;26418:21:32;26475:2;26455:18;;;26448:30;26514:34;26494:18;;;26487:62;-1:-1:-1;;;26565:18:32;;;26558:33;26608:19;;13793:71:21;26234:399:32;13793:71:21;13967;13989:6;13967:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13967:17:21;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;13947:17:21;;;:9;:17;;;;;;;;;;;:91;;;;14072:20;;;;;;;:32;;14097:6;14072:24;:32::i;:::-;-1:-1:-1;;;;;14049:20:21;;;:9;:20;;;;;;;;;;;;:55;;;;14120:35;1270:25:32;;;14049:20:21;;14120:35;;;;;;1243:18:32;14120:35:21;1124:177:32;10302:833:16;10480:16;;;10494:1;10480:16;;;;;;;;10377:7;;;;10480:16;10494:1;10480:16;;;;;;;;;;-1:-1:-1;10480:16:16;10456:40;;10525:4;10507;10512:1;10507:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;10507:23:16;;;-1:-1:-1;;;;;10507:23:16;;;;;1289:42;-1:-1:-1;;;;;10551:37:16;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10541:4;10546:1;10541:7;;;;;;;;:::i;:::-;;;;;;:49;-1:-1:-1;;;;;10541:49:16;;;-1:-1:-1;;;;;10541:49:16;;;;;10603:68;10620:4;1289:42;10650:20;10603:8;:68::i;:::-;10711:112;;-1:-1:-1;;;10711:112:16;;10684:24;;1289:42;;10711:46;;:112;;10772:20;;10808:4;;10711:112;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10711:112:16;;;;;;;;;;;;:::i;:::-;11041:8;;10684:139;;-1:-1:-1;1289:42:16;;10862:86;;10963:20;;10998:1;;11014:4;;11041:8;;;-1:-1:-1;;;;;11041:8:16;11065:21;:15;11083:3;11065:21;:::i;:::-;10862:235;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11117:7;11125:1;11117:10;;;;;;;;:::i;:::-;;;;;;;11110:17;;;;10302:833;;;:::o;2867:98:21:-;2925:7;2952:5;2956:1;2952;:5;:::i;14:131:32:-;-1:-1:-1;;;;;89:31:32;;79:42;;69:70;;135:1;132;125:12;150:416;215:6;223;276:2;264:9;255:7;251:23;247:32;244:52;;;292:1;289;282:12;244:52;331:9;318:23;350:31;375:5;350:31;:::i;:::-;400:5;-1:-1:-1;457:2:32;442:18;;429:32;499:15;;492:23;480:36;;470:64;;530:1;527;520:12;470:64;553:7;543:17;;;150:416;;;;;:::o;571:548::-;683:4;712:2;741;730:9;723:21;773:6;767:13;816:6;811:2;800:9;796:18;789:34;841:1;851:140;865:6;862:1;859:13;851:140;;;960:14;;;956:23;;950:30;926:17;;;945:2;922:26;915:66;880:10;;851:140;;;855:3;1040:1;1035:2;1026:6;1015:9;1011:22;1007:31;1000:42;1110:2;1103;1099:7;1094:2;1086:6;1082:15;1078:29;1067:9;1063:45;1059:54;1051:62;;;;571:548;;;;:::o;1306:315::-;1374:6;1382;1435:2;1423:9;1414:7;1410:23;1406:32;1403:52;;;1451:1;1448;1441:12;1403:52;1490:9;1477:23;1509:31;1534:5;1509:31;:::i;:::-;1559:5;1611:2;1596:18;;;;1583:32;;-1:-1:-1;;;1306:315:32:o;1818:156::-;1884:20;;1944:4;1933:16;;1923:27;;1913:55;;1964:1;1961;1954:12;1913:55;1818:156;;;:::o;1979:182::-;2036:6;2089:2;2077:9;2068:7;2064:23;2060:32;2057:52;;;2105:1;2102;2095:12;2057:52;2128:27;2145:9;2128:27;:::i;2166:456::-;2243:6;2251;2259;2312:2;2300:9;2291:7;2287:23;2283:32;2280:52;;;2328:1;2325;2318:12;2280:52;2367:9;2354:23;2386:31;2411:5;2386:31;:::i;:::-;2436:5;-1:-1:-1;2493:2:32;2478:18;;2465:32;2506:33;2465:32;2506:33;:::i;:::-;2166:456;;2558:7;;-1:-1:-1;;;2612:2:32;2597:18;;;;2584:32;;2166:456::o;2627:180::-;2686:6;2739:2;2727:9;2718:7;2714:23;2710:32;2707:52;;;2755:1;2752;2745:12;2707:52;-1:-1:-1;2778:23:32;;2627:180;-1:-1:-1;2627:180:32:o;3209:250::-;3275:6;3283;3336:2;3324:9;3315:7;3311:23;3307:32;3304:52;;;3352:1;3349;3342:12;3304:52;3375:27;3392:9;3375:27;:::i;3464:247::-;3523:6;3576:2;3564:9;3555:7;3551:23;3547:32;3544:52;;;3592:1;3589;3582:12;3544:52;3631:9;3618:23;3650:31;3675:5;3650:31;:::i;3716:317::-;3782:6;3790;3843:2;3831:9;3822:7;3818:23;3814:32;3811:52;;;3859:1;3856;3849:12;3811:52;3898:9;3885:23;3917:31;3942:5;3917:31;:::i;:::-;3967:5;-1:-1:-1;3991:36:32;4023:2;4008:18;;3991:36;:::i;:::-;3981:46;;3716:317;;;;;:::o;4434:388::-;4502:6;4510;4563:2;4551:9;4542:7;4538:23;4534:32;4531:52;;;4579:1;4576;4569:12;4531:52;4618:9;4605:23;4637:31;4662:5;4637:31;:::i;:::-;4687:5;-1:-1:-1;4744:2:32;4729:18;;4716:32;4757:33;4716:32;4757:33;:::i;4827:356::-;5029:2;5011:21;;;5048:18;;;5041:30;5107:34;5102:2;5087:18;;5080:62;5174:2;5159:18;;4827:356::o;5188:380::-;5267:1;5263:12;;;;5310;;;5331:61;;5385:4;5377:6;5373:17;5363:27;;5331:61;5438:2;5430:6;5427:14;5407:18;5404:38;5401:161;;5484:10;5479:3;5475:20;5472:1;5465:31;5519:4;5516:1;5509:15;5547:4;5544:1;5537:15;5401:161;;5188:380;;;:::o;6005:127::-;6066:10;6061:3;6057:20;6054:1;6047:31;6097:4;6094:1;6087:15;6121:4;6118:1;6111:15;6137:422;6226:1;6269:5;6226:1;6283:270;6304:7;6294:8;6291:21;6283:270;;;6363:4;6359:1;6355:6;6351:17;6345:4;6342:27;6339:53;;;6372:18;;:::i;:::-;6422:7;6412:8;6408:22;6405:55;;;6442:16;;;;6405:55;6521:22;;;;6481:15;;;;6283:270;;;6287:3;6137:422;;;;;:::o;6564:806::-;6613:5;6643:8;6633:80;;-1:-1:-1;6684:1:32;6698:5;;6633:80;6732:4;6722:76;;-1:-1:-1;6769:1:32;6783:5;;6722:76;6814:4;6832:1;6827:59;;;;6900:1;6895:130;;;;6807:218;;6827:59;6857:1;6848:10;;6871:5;;;6895:130;6932:3;6922:8;6919:17;6916:43;;;6939:18;;:::i;:::-;-1:-1:-1;;6995:1:32;6981:16;;7010:5;;6807:218;;7109:2;7099:8;7096:16;7090:3;7084:4;7081:13;7077:36;7071:2;7061:8;7058:16;7053:2;7047:4;7044:12;7040:35;7037:77;7034:159;;;-1:-1:-1;7146:19:32;;;7178:5;;7034:159;7225:34;7250:8;7244:4;7225:34;:::i;:::-;7295:6;7291:1;7287:6;7283:19;7274:7;7271:32;7268:58;;;7306:18;;:::i;:::-;7344:20;;6564:806;-1:-1:-1;;;6564:806:32:o;7375:140::-;7433:5;7462:47;7503:4;7493:8;7489:19;7483:4;7462:47;:::i;7520:168::-;7593:9;;;7624;;7641:15;;;7635:22;;7621:37;7611:71;;7662:18;;:::i;8123:425::-;8325:2;8307:21;;;8364:2;8344:18;;;8337:30;8403:34;8398:2;8383:18;;8376:62;8474:31;8469:2;8454:18;;8447:59;8538:3;8523:19;;8123:425::o;11587:184::-;11657:6;11710:2;11698:9;11689:7;11685:23;11681:32;11678:52;;;11726:1;11723;11716:12;11678:52;-1:-1:-1;11749:16:32;;11587:184;-1:-1:-1;11587:184:32:o;12948:125::-;13013:9;;;13034:10;;;13031:36;;;13047:18;;:::i;13078:128::-;13145:9;;;13166:11;;;13163:37;;;13180:18;;:::i;23606:217::-;23646:1;23672;23662:132;;23716:10;23711:3;23707:20;23704:1;23697:31;23751:4;23748:1;23741:15;23779:4;23776:1;23769:15;23662:132;-1:-1:-1;23808:9:32;;23606:217::o;26638:127::-;26699:10;26694:3;26690:20;26687:1;26680:31;26730:4;26727:1;26720:15;26754:4;26751:1;26744:15;26770:127;26831:10;26826:3;26822:20;26819:1;26812:31;26862:4;26859:1;26852:15;26886:4;26883:1;26876:15;26902:251;26972:6;27025:2;27013:9;27004:7;27000:23;26996:32;26993:52;;;27041:1;27038;27031:12;26993:52;27073:9;27067:16;27092:31;27117:5;27092:31;:::i;27158:461::-;27211:3;27249:5;27243:12;27276:6;27271:3;27264:19;27302:4;27331:2;27326:3;27322:12;27315:19;;27368:2;27361:5;27357:14;27389:1;27399:195;27413:6;27410:1;27407:13;27399:195;;;27478:13;;-1:-1:-1;;;;;27474:39:32;27462:52;;27534:12;;;;27569:15;;;;27510:1;27428:9;27399:195;;;-1:-1:-1;27610:3:32;;27158:461;-1:-1:-1;;;;;27158:461:32:o;27624:332::-;27831:6;27820:9;27813:25;27874:2;27869;27858:9;27854:18;27847:30;27794:4;27894:56;27946:2;27935:9;27931:18;27923:6;27894:56;:::i;:::-;27886:64;27624:332;-1:-1:-1;;;;27624:332:32:o;27961:1105::-;28056:6;28087:2;28130;28118:9;28109:7;28105:23;28101:32;28098:52;;;28146:1;28143;28136:12;28098:52;28179:9;28173:16;28208:18;28249:2;28241:6;28238:14;28235:34;;;28265:1;28262;28255:12;28235:34;28303:6;28292:9;28288:22;28278:32;;28348:7;28341:4;28337:2;28333:13;28329:27;28319:55;;28370:1;28367;28360:12;28319:55;28399:2;28393:9;28421:2;28417;28414:10;28411:36;;;28427:18;;:::i;:::-;28473:2;28470:1;28466:10;28505:2;28499:9;28568:2;28564:7;28559:2;28555;28551:11;28547:25;28539:6;28535:38;28623:6;28611:10;28608:22;28603:2;28591:10;28588:18;28585:46;28582:72;;;28634:18;;:::i;:::-;28670:2;28663:22;28720:18;;;28754:15;;;;-1:-1:-1;28796:11:32;;;28792:20;;;28824:19;;;28821:39;;;28856:1;28853;28846:12;28821:39;28880:11;;;;28900:135;28916:6;28911:3;28908:15;28900:135;;;28982:10;;28970:23;;28933:12;;;;29013;;;;28900:135;;;29054:6;27961:1105;-1:-1:-1;;;;;;;;27961:1105:32:o;29071:582::-;29370:6;29359:9;29352:25;29413:6;29408:2;29397:9;29393:18;29386:34;29456:3;29451:2;29440:9;29436:18;29429:31;29333:4;29477:57;29529:3;29518:9;29514:19;29506:6;29477:57;:::i;:::-;-1:-1:-1;;;;;29570:32:32;;;;29565:2;29550:18;;29543:60;-1:-1:-1;29634:3:32;29619:19;29612:35;29469:65;29071:582;-1:-1:-1;;;29071:582:32:o", + "linkReferences": {}, + "immutableReferences": { + "25569": [ + { + "start": 2018, + "length": 32 + }, + { + "start": 7305, + "length": 32 + } + ] + } + }, + "methodIdentifiers": { + "UNISWAP_V2_PAIR()": "f40acc3d", + "UNIV2_ROUTER()": "676d3563", + "adjustBasisPointsTax(uint8,uint256)": "5376b092", + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "authorized(address)": "b9181611", + "balanceOf(address)": "70a08231", + "basisPointsTax(uint8)": "97a84f85", + "blacklist(address)": "f9f92be4", + "burn(address,uint256)": "9dc29fac", + "decimals()": "313ce567", + "decreaseAllowance(address,uint256)": "a457c2d7", + "depositor()": "c7c4ff46", + "distributeRoyaltiesToTreasury()": "3b6c0334", + "getContractTokenBalance()": "317d9453", + "getIndustryTokens(address)": "b5b44106", + "increaseAllowance(address,uint256)": "39509351", + "industryBurn(address,uint256)": "f5423c89", + "industryMint(address,uint256)": "8f3f5254", + "industryTokens(address)": "f9079b73", + "lifetimeIndustryTokens(address)": "fb8f3cc8", + "lock(uint256)": "dd467064", + "maxContractTokenBalance()": "090f215c", + "maxTxAmount()": "8c0b5e22", + "maxWalletSize()": "8f3fa860", + "mint(address,uint256)": "40c10f19", + "modifyBlacklist(address,bool)": "cc6df138", + "modifyWhitelist(address,bool)": "060d206e", + "name()": "06fdde03", + "owner()": "8da5cb5b", + "pause()": "8456cb59", + "paused()": "5c975abb", + "permanentlyRemoveTaxes(uint256)": "c4bb8cbe", + "receiverTaxType(address)": "9af98541", + "renounceOwnership()": "715018a6", + "senderTaxType(address)": "a3504e7c", + "setDepositor(address)": "f2c098b7", + "setTreasury(address)": "f0f44260", + "setVesting(address)": "6f6ff3bc", + "symbol()": "95d89b41", + "taxesAccrued(uint8)": "166cc492", + "taxesRemoved()": "f2b6b501", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b", + "treasury()": "61d027b3", + "unpause()": "3f4ba83a", + "updateAuthorizedList(address,bool)": "6ef8834a", + "updateMaxContractTokenBalance(uint256)": "a97ed4d2", + "updateMaxTxAmount(uint256)": "6256d181", + "updateMaxWalletSize(uint256)": "24887e80", + "updateReceiverTaxType(address,uint8)": "f7808060", + "updateSenderTaxType(address,uint8)": "7097f793", + "vesting()": "44c63eec", + "whitelist(address)": "9b19251a" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalSupplyInput\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"nameInput\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbolInput\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimalsInput\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"maxWalletSizeInput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTxAmountInput\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"DepositorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"MaxTxUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"MaxWalletUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"TaxesPermanentlyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_treasury\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"TransferTax\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"TreasuryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_state\",\"type\":\"bool\"}],\"name\":\"UpdatedAuthorizedWallets\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"VestingUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UNISWAP_V2_PAIR\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNIV2_ROUTER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_taxType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_bpt\",\"type\":\"uint256\"}],\"name\":\"adjustBasisPointsTax\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"authorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"basisPointsTax\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"blacklist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distributeRoyaltiesToTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getContractTokenBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"}],\"name\":\"getIndustryTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numIndustryTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numDifference\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lifetime\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"industryBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"industryMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"industryTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lifetimeIndustryTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"lock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxContractTokenBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxTxAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxWalletSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_blacklist\",\"type\":\"bool\"}],\"name\":\"modifyBlacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_whitelisted\",\"type\":\"bool\"}],\"name\":\"modifyWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_key\",\"type\":\"uint256\"}],\"name\":\"permanentlyRemoveTaxes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"receiverTaxType\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"senderTaxType\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_depositor\",\"type\":\"address\"}],\"name\":\"setDepositor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_vesting\",\"type\":\"address\"}],\"name\":\"setVesting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"taxesAccrued\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"taxesRemoved\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_state\",\"type\":\"bool\"}],\"name\":\"updateAuthorizedList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"updateMaxContractTokenBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxTxAmount\",\"type\":\"uint256\"}],\"name\":\"updateMaxTxAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxWalletSize\",\"type\":\"uint256\"}],\"name\":\"updateMaxWalletSize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"_taxType\",\"type\":\"uint8\"}],\"name\":\"updateReceiverTaxType\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"_taxType\",\"type\":\"uint8\"}],\"name\":\"updateSenderTaxType\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vesting\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The TaxToken is responsible for supporting generic ERC20 functionality including ERC20Pausable functionality. The TaxToken will generate taxes on transfer() and transferFrom() calls for non-whitelisted addresses. The Admin can specify the tax fee in basis points for buys, sells, and transfers. The TaxToken will forward all taxes generated to a Treasury\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"TransferTax(address,uint256)\":{\"details\":\"Emitted during transferFrom().\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"UpdatedAuthorizedWallets(address,bool)\":{\"details\":\"Emitted when updating authorized addresses (users or contracts).\"}},\"kind\":\"dev\",\"methods\":{\"adjustBasisPointsTax(uint8,uint256)\":{\"details\":\"Must be lower than 2000 which is equivalent to 20%.\",\"params\":{\"_bpt\":\"This is the corresponding percentage that is taken for royalties. 1200 = 12%.\",\"_taxType\":\"This value is the tax type. Has to be 0, 1, or 2.\"}},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(address,uint256)\":{\"details\":\"Does not truncate so amount needs to include the 18 decimal points.\",\"params\":{\"_amount\":\"the amount of tokens we're burning.\",\"_wallet\":\"the account we're burning tokens from.\"}},\"constructor\":{\"details\":\"_paused - ERC20 Pausable global state variable, initial state is not paused (\\\"unpaused\\\").The \\\"owner\\\" is the \\\"admin\\\" of this contract.Initial liquidity, allocated entirely to \\\"owner\\\".\",\"params\":{\"decimalsInput\":\"The decimal precision of this token.\",\"maxTxAmountInput\":\"The maximum tx size (this value is multipled by 10**decimals in constructor).\",\"maxWalletSizeInput\":\"The maximum wallet size (this value is multipled by 10**decimals in constructor).\",\"nameInput\":\"The name of this token.\",\"symbolInput\":\"The symbol of this token.\",\"totalSupplyInput\":\"The total supply of this token (this value is multipled by 10**decimals in constructor).\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"getContractTokenBalance()\":{\"returns\":{\"_0\":\"uint256 the num of tokens stored in this contract.\"}},\"getIndustryTokens(address)\":{\"details\":\"This function is for the front end to pull industry data for a specific wallet.\",\"returns\":{\"lifetime\":\"the amount of industry tokens that have been minted to _wallet in total.\",\"numDifference\":\"the amount of tokens they have that are NOT industry tokens.\",\"numIndustryTokens\":\"the amount of tokens they hold that is industry tokens.\",\"numTokens\":\"the amount of taxTokens the _wallet holds.\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"industryBurn(address,uint256)\":{\"details\":\"Does not truncate so amount needs to include the 18 decimal points. \",\"params\":{\"_amount\":\"the amount of tokens we're burning.\",\"_wallet\":\"the account we're burning tokens from.\"}},\"industryMint(address,uint256)\":{\"details\":\"Any tokens minted through this process can only be used inside of the NFT marketplace to mint new NFTS (can only be burned).Users may still buy and sell new or prior existing non-minted tokens but these will be soulbound. Does not truncate so amount needs to include the 18 decimal points.\",\"params\":{\"_amount\":\"is the amount of tokens to be minted into _wallet.\",\"_wallet\":\"is the wallet address that will recieve these minted tokens.\"}},\"mint(address,uint256)\":{\"details\":\"Does not truncate so amount needs to include the 18 decimal points. Needed too add new tokens to supply if we want to get listed on multiple exchanges.\",\"params\":{\"_amount\":\"the amount of tokens we're minting.\",\"_wallet\":\"the account we're minting tokens to.\"}},\"modifyBlacklist(address,bool)\":{\"details\":\"Blacklisted wallets cannot perform transfer() or transferFrom(). unless it's to or from a whitelisted wallet.\",\"params\":{\"_blacklist\":\"use True to blacklist a wallet, otherwise use False to remove wallet from blacklist.\",\"_wallet\":\"is the wallet address that will have their blacklist status modified.\"}},\"modifyWhitelist(address,bool)\":{\"details\":\"Whitelisted wallets are not affected by maxWalletSize, maxTxAmount, or taxes.\",\"params\":{\"_wallet\":\"is the wallet address that will have their whitelist status modified.\",\"_whitelisted\":\"use True to whitelist a wallet, otherwise use False to remove wallet from whitelist.\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"Contract MUST NOT be paused to call this, caller must be \\\"owner\\\".\"},\"paused()\":{\"returns\":{\"_0\":\"_paused Indicates whether the contract is paused (true) or not paused (false).\"}},\"permanentlyRemoveTaxes(uint256)\":{\"details\":\"An input is required here for sanity-check, given importance of this function call (and irreversible nature).\",\"params\":{\"_key\":\"This value MUST equal 42 for function to execute.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setDepositor(address)\":{\"params\":{\"_depositor\":\"is the contract address of the depositor contract.\"}},\"setTreasury(address)\":{\"params\":{\"_treasury\":\"is the contract address of the treasury.\"}},\"setVesting(address)\":{\"params\":{\"_vesting\":\"is the contract address of the vesting.\"}},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"Contract MUST be paused to call this, caller must be \\\"owner\\\".\"},\"updateAuthorizedList(address,bool)\":{\"params\":{\"_account\":\"is the address that will change from authorized or not.\",\"_state\":\"(True or False) If true, _account is authorized, if false, _account is not authorized.\"}},\"updateMaxContractTokenBalance(uint256)\":{\"params\":{\"_amount\":\"is the amount of tokens that need to be hit to distribute.\"}},\"updateMaxTxAmount(uint256)\":{\"details\":\"Does not affect whitelisted wallets.\",\"params\":{\"_maxTxAmount\":\"is the max amount of tokens that can be transacted at one time for a non-whitelisted wallet.\"}},\"updateMaxWalletSize(uint256)\":{\"details\":\"Does not affect whitelisted wallets.\",\"params\":{\"_maxWalletSize\":\"is the max amount of tokens that can be held on a non-whitelisted wallet.\"}},\"updateReceiverTaxType(address,uint8)\":{\"details\":\"_taxType must be lower than 3 because there can only be 3 tax types; buy, sell, & send.\",\"params\":{\"_receiver\":\"This value is the PAIR address.\",\"_taxType\":\"This value must be be 0, 1, or 2. Best to correspond value with the SELL tax type.\"}},\"updateSenderTaxType(address,uint8)\":{\"details\":\"_taxType must be lower than 3 because there can only be 3 tax types; buy, sell, & send.\",\"params\":{\"_sender\":\"This value is the PAIR address.\",\"_taxType\":\"This value must be be 0, 1, or 2. Best to correspond value with the BUY tax type.\"}}},\"stateVariables\":{\"authorized\":{\"details\":\"Mapping between taxType and basisPoints (taxed).\"},\"basisPointsTax\":{\"details\":\"Identifies tax type for _to of transfer() call.\"},\"lifetimeIndustryTokens\":{\"details\":\"Mapping of how many locked tokens exist in a wallet (In 18 decimal format).\"},\"maxWalletSize\":{\"details\":\"Once true, taxes are permanently set to 0 and CAN NOT be increased in the future.\"},\"receiverTaxType\":{\"details\":\"Identifies tax type for msg.sender of transfer() call.\"},\"senderTaxType\":{\"details\":\"Any transfer that involves a whitelisted address, will not incur a tax.\"},\"taxesAccrued\":{\"details\":\"Mapping of which wallets are authorized to call specific functions.\"},\"whitelist\":{\"details\":\"If an address is blacklisted, they cannot perform transfer() or transferFrom().\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"adjustBasisPointsTax(uint8,uint256)\":{\"notice\":\"Used to map the tax type 0, 1 or 2 with it's corresponding tax percentage.\"},\"burn(address,uint256)\":{\"notice\":\"This function will destroy existing tokens and deduct them from total supply.\"},\"constructor\":{\"notice\":\"Initializes the TaxToken.\"},\"getContractTokenBalance()\":{\"notice\":\"This functions returns the number of taxToken are inside the contract. NOTE: These tokens have most likely been accrued from taxes.\"},\"getIndustryTokens(address)\":{\"notice\":\"This function is a VIEW function that returns the amount of industry tokens, full balance, and normal tokens a wallet has.\"},\"industryBurn(address,uint256)\":{\"notice\":\"This function will destroy existing tokens and deduct them from total supply.\"},\"industryMint(address,uint256)\":{\"notice\":\"This function is used to mint tokens and log their creation to the industry wallet mappings.\"},\"mint(address,uint256)\":{\"notice\":\"This function will create new tokens and adding them to total supply.\"},\"modifyBlacklist(address,bool)\":{\"notice\":\"This function is used to add or remove wallets from the blacklist.\"},\"modifyWhitelist(address,bool)\":{\"notice\":\"This function is used to add wallets to the whitelist mapping.\"},\"pause()\":{\"notice\":\"Pause the contract, blocks transfer() and transferFrom().\"},\"permanentlyRemoveTaxes(uint256)\":{\"notice\":\"Permanently remove taxes from this contract.\"},\"setDepositor(address)\":{\"notice\":\"Set the depositor (contract) which is the backend contract for the dapp.\"},\"setTreasury(address)\":{\"notice\":\"Set the treasury (contract) which receives taxes generated through transfer() and transferFrom().\"},\"setVesting(address)\":{\"notice\":\"Set the vesting (contract) which is then whitelisted and minted the amount needed for vesting.\"},\"unpause()\":{\"notice\":\"Unpause the contract.\"},\"updateAuthorizedList(address,bool)\":{\"notice\":\"This is used to change the owner's wallet address. Used to give ownership to another wallet.\"},\"updateMaxContractTokenBalance(uint256)\":{\"notice\":\"Updates the maxContractTokebBalance var which is used to set the distribution threshhold of royalties to the Treasury.\"},\"updateMaxTxAmount(uint256)\":{\"notice\":\"Adjust maxTxAmount value (maximum amount transferrable in a single transaction).\"},\"updateMaxWalletSize(uint256)\":{\"notice\":\"This function is used to set the max amount of tokens a wallet can hold.\"},\"updateReceiverTaxType(address,uint8)\":{\"notice\":\"Used to store the LP Pair to differ type of transaction. Will be used to mark a SELL.\"},\"updateSenderTaxType(address,uint8)\":{\"notice\":\"Used to store the LP Pair to differ type of transaction. Will be used to mark a BUY.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/TaxToken.sol\":\"TaxToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/TaxToken.sol\":{\"keccak256\":\"0x8027c905e28f0b030a25b3c0fb16c9bd2e100ba07029be13c815977da0a8f014\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8934f9517322735c1bff0c0c5fc963460ee10fb61cc3482c77d2232a0104ebda\",\"dweb:/ipfs/Qmf6mrb3BE4dAnvLZpneafJbHRJkGTDrRQAc8gtfVjijx6\"]},\"src/extensions/Context.sol\":{\"keccak256\":\"0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12\",\"dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV\"]},\"src/extensions/Ownable.sol\":{\"keccak256\":\"0xbe3f4ae2a873ee339e0ac54107262ee789604570a463549fd43364289769207f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca9dde5e484d808440ff8ac43892b8f59a2b76d5084efce1dfa904d800c0f9c6\",\"dweb:/ipfs/QmRnQ2x3a9GwVKf7wbRhNY1MwdxyoTkvDtLFqjXxhEoALA\"]},\"src/interfaces/ERC20.sol\":{\"keccak256\":\"0x66faf9d1ffb72b9815ca0361cc51dcee221d71bf77d1fbc333764ec45ba4625d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b8e9fa1d14f1f05c268ea595f8f17b6e7a600b050ca5b28b18cce98a18500bd\",\"dweb:/ipfs/Qmdi66SsYxDycpGFRtJZ2eJy5znGp6JKwGsHd4BEkWswka\"]},\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be\",\"dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA\"]},\"src/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xc47e18780475626ac1da1437417e84442c2328eaa2726669bd4d84d46f64f275\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d0b18cef7206904c41fff4113a98513828cb5e393de57a6b6330dd1010498606\",\"dweb:/ipfs/QmRCyXnd2bvUyK39TAX9ddm7Ra7hWdMB7b2tqZeytnDyFm\"]},\"src/interfaces/IUniswapV2Router.sol\":{\"keccak256\":\"0xd6f5421763c422b31d0d448ddb3406628b7119a0230d05c82ac932816374f4e4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0413b1f197957edd78b044d2342ef527c18f768d678967a085a4820b4b6e1cee\",\"dweb:/ipfs/QmTekfGmFArRoMM2HQ5hrqxqsDMfahfVa7tc7ddYk7EsD5\"]},\"src/interfaces/InterfacesAggregated.sol\":{\"keccak256\":\"0xd5e582438e596ce5ce33c207884e973a7b8717212aa9fd21909b8b2d9c467095\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://86a732fe5eb860bed3fc631feb767e2b3145f510c082e64dd062e9b2fca66128\",\"dweb:/ipfs/QmcrieewKPRseM8yyGH529sYqb5A4RGDoZsg5F9tDnnnmr\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "totalSupplyInput", + "type": "uint256" + }, + { + "internalType": "string", + "name": "nameInput", + "type": "string" + }, + { + "internalType": "string", + "name": "symbolInput", + "type": "string" + }, + { + "internalType": "uint8", + "name": "decimalsInput", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "maxWalletSizeInput", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTxAmountInput", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "spender", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Approval", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "DepositorUpdated", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "MaxTxUpdated", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "MaxWalletUpdated", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "previousOwner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "newOwner", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "OwnershipTransferred", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "Paused", + "anonymous": false + }, + { + "inputs": [], + "type": "event", + "name": "TaxesPermanentlyRemoved", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Transfer", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "TransferTax", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "TreasuryUpdated", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "Unpaused", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address", + "indexed": true + }, + { + "internalType": "bool", + "name": "_state", + "type": "bool", + "indexed": false + } + ], + "type": "event", + "name": "UpdatedAuthorizedWallets", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "VestingUpdated", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "UNISWAP_V2_PAIR", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "UNIV2_ROUTER", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "_taxType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "_bpt", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "adjustBasisPointsTax" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "authorized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function", + "name": "basisPointsTax", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "blacklist", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "burn" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "depositor", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "distributeRoyaltiesToTreasury" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getContractTokenBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getIndustryTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "numTokens", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "numIndustryTokens", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "numDifference", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lifetime", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "industryBurn" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "industryMint" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "industryTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "lifetimeIndustryTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "lock" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "maxContractTokenBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "maxTxAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "maxWalletSize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "mint" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "bool", + "name": "_blacklist", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "modifyBlacklist" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "bool", + "name": "_whitelisted", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "modifyWhitelist" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "pause" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_key", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "permanentlyRemoveTaxes" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "receiverTaxType", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "renounceOwnership" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "senderTaxType", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_depositor", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setDepositor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setTreasury" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_vesting", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setVesting" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function", + "name": "taxesAccrued", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "taxesRemoved", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferOwnership" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "unpause" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "bool", + "name": "_state", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "updateAuthorizedList" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "updateMaxContractTokenBalance" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_maxTxAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "updateMaxTxAmount" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_maxWalletSize", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "updateMaxWalletSize" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_receiver", + "type": "address" + }, + { + "internalType": "uint8", + "name": "_taxType", + "type": "uint8" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "updateReceiverTaxType" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "internalType": "uint8", + "name": "_taxType", + "type": "uint8" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "updateSenderTaxType" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "vesting", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "whitelist", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "adjustBasisPointsTax(uint8,uint256)": { + "details": "Must be lower than 2000 which is equivalent to 20%.", + "params": { + "_bpt": "This is the corresponding percentage that is taken for royalties. 1200 = 12%.", + "_taxType": "This value is the tax type. Has to be 0, 1, or 2." + } + }, + "allowance(address,address)": { + "details": "See {IERC20-allowance}." + }, + "approve(address,uint256)": { + "details": "See {IERC20-approve}. Requirements: - `spender` cannot be the zero address." + }, + "balanceOf(address)": { + "details": "See {IERC20-balanceOf}." + }, + "burn(address,uint256)": { + "details": "Does not truncate so amount needs to include the 18 decimal points.", + "params": { + "_amount": "the amount of tokens we're burning.", + "_wallet": "the account we're burning tokens from." + } + }, + "constructor": { + "details": "_paused - ERC20 Pausable global state variable, initial state is not paused (\"unpaused\").The \"owner\" is the \"admin\" of this contract.Initial liquidity, allocated entirely to \"owner\".", + "params": { + "decimalsInput": "The decimal precision of this token.", + "maxTxAmountInput": "The maximum tx size (this value is multipled by 10**decimals in constructor).", + "maxWalletSizeInput": "The maximum wallet size (this value is multipled by 10**decimals in constructor).", + "nameInput": "The name of this token.", + "symbolInput": "The symbol of this token.", + "totalSupplyInput": "The total supply of this token (this value is multipled by 10**decimals in constructor)." + } + }, + "decimals()": { + "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}." + }, + "decreaseAllowance(address,uint256)": { + "details": "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`." + }, + "getContractTokenBalance()": { + "returns": { + "_0": "uint256 the num of tokens stored in this contract." + } + }, + "getIndustryTokens(address)": { + "details": "This function is for the front end to pull industry data for a specific wallet.", + "returns": { + "lifetime": "the amount of industry tokens that have been minted to _wallet in total.", + "numDifference": "the amount of tokens they have that are NOT industry tokens.", + "numIndustryTokens": "the amount of tokens they hold that is industry tokens.", + "numTokens": "the amount of taxTokens the _wallet holds." + } + }, + "increaseAllowance(address,uint256)": { + "details": "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address." + }, + "industryBurn(address,uint256)": { + "details": "Does not truncate so amount needs to include the 18 decimal points. ", + "params": { + "_amount": "the amount of tokens we're burning.", + "_wallet": "the account we're burning tokens from." + } + }, + "industryMint(address,uint256)": { + "details": "Any tokens minted through this process can only be used inside of the NFT marketplace to mint new NFTS (can only be burned).Users may still buy and sell new or prior existing non-minted tokens but these will be soulbound. Does not truncate so amount needs to include the 18 decimal points.", + "params": { + "_amount": "is the amount of tokens to be minted into _wallet.", + "_wallet": "is the wallet address that will recieve these minted tokens." + } + }, + "mint(address,uint256)": { + "details": "Does not truncate so amount needs to include the 18 decimal points. Needed too add new tokens to supply if we want to get listed on multiple exchanges.", + "params": { + "_amount": "the amount of tokens we're minting.", + "_wallet": "the account we're minting tokens to." + } + }, + "modifyBlacklist(address,bool)": { + "details": "Blacklisted wallets cannot perform transfer() or transferFrom(). unless it's to or from a whitelisted wallet.", + "params": { + "_blacklist": "use True to blacklist a wallet, otherwise use False to remove wallet from blacklist.", + "_wallet": "is the wallet address that will have their blacklist status modified." + } + }, + "modifyWhitelist(address,bool)": { + "details": "Whitelisted wallets are not affected by maxWalletSize, maxTxAmount, or taxes.", + "params": { + "_wallet": "is the wallet address that will have their whitelist status modified.", + "_whitelisted": "use True to whitelist a wallet, otherwise use False to remove wallet from whitelist." + } + }, + "name()": { + "details": "Returns the name of the token." + }, + "owner()": { + "details": "Returns the address of the current owner." + }, + "pause()": { + "details": "Contract MUST NOT be paused to call this, caller must be \"owner\"." + }, + "paused()": { + "returns": { + "_0": "_paused Indicates whether the contract is paused (true) or not paused (false)." + } + }, + "permanentlyRemoveTaxes(uint256)": { + "details": "An input is required here for sanity-check, given importance of this function call (and irreversible nature).", + "params": { + "_key": "This value MUST equal 42 for function to execute." + } + }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." + }, + "setDepositor(address)": { + "params": { + "_depositor": "is the contract address of the depositor contract." + } + }, + "setTreasury(address)": { + "params": { + "_treasury": "is the contract address of the treasury." + } + }, + "setVesting(address)": { + "params": { + "_vesting": "is the contract address of the vesting." + } + }, + "symbol()": { + "details": "Returns the symbol of the token, usually a shorter version of the name." + }, + "totalSupply()": { + "details": "See {IERC20-totalSupply}." + }, + "transfer(address,uint256)": { + "details": "See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`." + }, + "transferFrom(address,address,uint256)": { + "details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`." + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." + }, + "unpause()": { + "details": "Contract MUST be paused to call this, caller must be \"owner\"." + }, + "updateAuthorizedList(address,bool)": { + "params": { + "_account": "is the address that will change from authorized or not.", + "_state": "(True or False) If true, _account is authorized, if false, _account is not authorized." + } + }, + "updateMaxContractTokenBalance(uint256)": { + "params": { + "_amount": "is the amount of tokens that need to be hit to distribute." + } + }, + "updateMaxTxAmount(uint256)": { + "details": "Does not affect whitelisted wallets.", + "params": { + "_maxTxAmount": "is the max amount of tokens that can be transacted at one time for a non-whitelisted wallet." + } + }, + "updateMaxWalletSize(uint256)": { + "details": "Does not affect whitelisted wallets.", + "params": { + "_maxWalletSize": "is the max amount of tokens that can be held on a non-whitelisted wallet." + } + }, + "updateReceiverTaxType(address,uint8)": { + "details": "_taxType must be lower than 3 because there can only be 3 tax types; buy, sell, & send.", + "params": { + "_receiver": "This value is the PAIR address.", + "_taxType": "This value must be be 0, 1, or 2. Best to correspond value with the SELL tax type." + } + }, + "updateSenderTaxType(address,uint8)": { + "details": "_taxType must be lower than 3 because there can only be 3 tax types; buy, sell, & send.", + "params": { + "_sender": "This value is the PAIR address.", + "_taxType": "This value must be be 0, 1, or 2. Best to correspond value with the BUY tax type." + } + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "adjustBasisPointsTax(uint8,uint256)": { + "notice": "Used to map the tax type 0, 1 or 2 with it's corresponding tax percentage." + }, + "burn(address,uint256)": { + "notice": "This function will destroy existing tokens and deduct them from total supply." + }, + "constructor": { + "notice": "Initializes the TaxToken." + }, + "getContractTokenBalance()": { + "notice": "This functions returns the number of taxToken are inside the contract. NOTE: These tokens have most likely been accrued from taxes." + }, + "getIndustryTokens(address)": { + "notice": "This function is a VIEW function that returns the amount of industry tokens, full balance, and normal tokens a wallet has." + }, + "industryBurn(address,uint256)": { + "notice": "This function will destroy existing tokens and deduct them from total supply." + }, + "industryMint(address,uint256)": { + "notice": "This function is used to mint tokens and log their creation to the industry wallet mappings." + }, + "mint(address,uint256)": { + "notice": "This function will create new tokens and adding them to total supply." + }, + "modifyBlacklist(address,bool)": { + "notice": "This function is used to add or remove wallets from the blacklist." + }, + "modifyWhitelist(address,bool)": { + "notice": "This function is used to add wallets to the whitelist mapping." + }, + "pause()": { + "notice": "Pause the contract, blocks transfer() and transferFrom()." + }, + "permanentlyRemoveTaxes(uint256)": { + "notice": "Permanently remove taxes from this contract." + }, + "setDepositor(address)": { + "notice": "Set the depositor (contract) which is the backend contract for the dapp." + }, + "setTreasury(address)": { + "notice": "Set the treasury (contract) which receives taxes generated through transfer() and transferFrom()." + }, + "setVesting(address)": { + "notice": "Set the vesting (contract) which is then whitelisted and minted the amount needed for vesting." + }, + "unpause()": { + "notice": "Unpause the contract." + }, + "updateAuthorizedList(address,bool)": { + "notice": "This is used to change the owner's wallet address. Used to give ownership to another wallet." + }, + "updateMaxContractTokenBalance(uint256)": { + "notice": "Updates the maxContractTokebBalance var which is used to set the distribution threshhold of royalties to the Treasury." + }, + "updateMaxTxAmount(uint256)": { + "notice": "Adjust maxTxAmount value (maximum amount transferrable in a single transaction)." + }, + "updateMaxWalletSize(uint256)": { + "notice": "This function is used to set the max amount of tokens a wallet can hold." + }, + "updateReceiverTaxType(address,uint8)": { + "notice": "Used to store the LP Pair to differ type of transaction. Will be used to mark a SELL." + }, + "updateSenderTaxType(address,uint8)": { + "notice": "Used to store the LP Pair to differ type of transaction. Will be used to mark a BUY." + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/TaxToken.sol": "TaxToken" + }, + "libraries": {} + }, + "sources": { + "src/TaxToken.sol": { + "keccak256": "0x8027c905e28f0b030a25b3c0fb16c9bd2e100ba07029be13c815977da0a8f014", + "urls": [ + "bzz-raw://8934f9517322735c1bff0c0c5fc963460ee10fb61cc3482c77d2232a0104ebda", + "dweb:/ipfs/Qmf6mrb3BE4dAnvLZpneafJbHRJkGTDrRQAc8gtfVjijx6" + ], + "license": "MIT" + }, + "src/extensions/Context.sol": { + "keccak256": "0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016", + "urls": [ + "bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12", + "dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV" + ], + "license": "MIT" + }, + "src/extensions/Ownable.sol": { + "keccak256": "0xbe3f4ae2a873ee339e0ac54107262ee789604570a463549fd43364289769207f", + "urls": [ + "bzz-raw://ca9dde5e484d808440ff8ac43892b8f59a2b76d5084efce1dfa904d800c0f9c6", + "dweb:/ipfs/QmRnQ2x3a9GwVKf7wbRhNY1MwdxyoTkvDtLFqjXxhEoALA" + ], + "license": "MIT" + }, + "src/interfaces/ERC20.sol": { + "keccak256": "0x66faf9d1ffb72b9815ca0361cc51dcee221d71bf77d1fbc333764ec45ba4625d", + "urls": [ + "bzz-raw://7b8e9fa1d14f1f05c268ea595f8f17b6e7a600b050ca5b28b18cce98a18500bd", + "dweb:/ipfs/Qmdi66SsYxDycpGFRtJZ2eJy5znGp6JKwGsHd4BEkWswka" + ], + "license": "GPL-3.0-or-later" + }, + "src/interfaces/IERC20.sol": { + "keccak256": "0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f", + "urls": [ + "bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be", + "dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA" + ], + "license": "GPL-3.0-or-later" + }, + "src/interfaces/IUniswapV2Factory.sol": { + "keccak256": "0xc47e18780475626ac1da1437417e84442c2328eaa2726669bd4d84d46f64f275", + "urls": [ + "bzz-raw://d0b18cef7206904c41fff4113a98513828cb5e393de57a6b6330dd1010498606", + "dweb:/ipfs/QmRCyXnd2bvUyK39TAX9ddm7Ra7hWdMB7b2tqZeytnDyFm" + ], + "license": "GPL-3.0-or-later" + }, + "src/interfaces/IUniswapV2Router.sol": { + "keccak256": "0xd6f5421763c422b31d0d448ddb3406628b7119a0230d05c82ac932816374f4e4", + "urls": [ + "bzz-raw://0413b1f197957edd78b044d2342ef527c18f768d678967a085a4820b4b6e1cee", + "dweb:/ipfs/QmTekfGmFArRoMM2HQ5hrqxqsDMfahfVa7tc7ddYk7EsD5" + ], + "license": "GPL-3.0-or-later" + }, + "src/interfaces/InterfacesAggregated.sol": { + "keccak256": "0xd5e582438e596ce5ce33c207884e973a7b8717212aa9fd21909b8b2d9c467095", + "urls": [ + "bzz-raw://86a732fe5eb860bed3fc631feb767e2b3145f510c082e64dd062e9b2fca66128", + "dweb:/ipfs/QmcrieewKPRseM8yyGH529sYqb5A4RGDoZsg5F9tDnnnmr" + ], + "license": "GPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/TaxToken.sol", + "id": 27007, + "exportedSymbols": { + "Context": [ + 28122 + ], + "ERC20": [ + 29081 + ], + "IERC20": [ + 29158 + ], + "ITreasury": [ + 29882 + ], + "IUniswapV2Factory": [ + 29229 + ], + "IUniswapV2Router02": [ + 29864 + ], + "IVesting": [ + 29888 + ], + "Ownable": [ + 28270 + ], + "TaxToken": [ + 27006 + ] + }, + "nodeType": "SourceUnit", + "src": "32:25272:16", + "nodes": [ + { + "id": 25533, + "nodeType": "PragmaDirective", + "src": "32:23:16", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ] + }, + { + "id": 25535, + "nodeType": "ImportDirective", + "src": "59:49:16", + "nodes": [], + "absolutePath": "src/interfaces/IERC20.sol", + "file": "./interfaces/IERC20.sol", + "nameLocation": "-1:-1:-1", + "scope": 27007, + "sourceUnit": 29167, + "symbolAliases": [ + { + "foreign": { + "id": 25534, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29158, + "src": "68:6:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 25538, + "nodeType": "ImportDirective", + "src": "110:76:16", + "nodes": [], + "absolutePath": "src/interfaces/InterfacesAggregated.sol", + "file": "./interfaces/InterfacesAggregated.sol", + "nameLocation": "-1:-1:-1", + "scope": 27007, + "sourceUnit": 29889, + "symbolAliases": [ + { + "foreign": { + "id": 25536, + "name": "ITreasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29882, + "src": "119:9:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 25537, + "name": "IVesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29888, + "src": "130:8:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 25540, + "nodeType": "ImportDirective", + "src": "188:71:16", + "nodes": [], + "absolutePath": "src/interfaces/IUniswapV2Factory.sol", + "file": "./interfaces/IUniswapV2Factory.sol", + "nameLocation": "-1:-1:-1", + "scope": 27007, + "sourceUnit": 29230, + "symbolAliases": [ + { + "foreign": { + "id": 25539, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29229, + "src": "197:17:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 25542, + "nodeType": "ImportDirective", + "src": "261:71:16", + "nodes": [], + "absolutePath": "src/interfaces/IUniswapV2Router.sol", + "file": "./interfaces/IUniswapV2Router.sol", + "nameLocation": "-1:-1:-1", + "scope": 27007, + "sourceUnit": 29865, + "symbolAliases": [ + { + "foreign": { + "id": 25541, + "name": "IUniswapV2Router02", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29864, + "src": "270:18:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 25544, + "nodeType": "ImportDirective", + "src": "334:47:16", + "nodes": [], + "absolutePath": "src/interfaces/ERC20.sol", + "file": "./interfaces/ERC20.sol", + "nameLocation": "-1:-1:-1", + "scope": 27007, + "sourceUnit": 29082, + "symbolAliases": [ + { + "foreign": { + "id": 25543, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29081, + "src": "343:5:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 25545, + "nodeType": "ImportDirective", + "src": "383:34:16", + "nodes": [], + "absolutePath": "src/extensions/Ownable.sol", + "file": "./extensions/Ownable.sol", + "nameLocation": "-1:-1:-1", + "scope": 27007, + "sourceUnit": 28271, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 27006, + "nodeType": "ContractDefinition", + "src": "828:24476:16", + "nodes": [ + { + "id": 25552, + "nodeType": "VariableDeclaration", + "src": "968:20:16", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "976:12:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "968:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "id": 25554, + "nodeType": "VariableDeclaration", + "src": "1027:20:16", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1042:5:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 25553, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1027:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "id": 25556, + "nodeType": "VariableDeclaration", + "src": "1054:22:16", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "1069:7:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 25555, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1054:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "id": 25558, + "nodeType": "VariableDeclaration", + "src": "1114:20:16", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_paused", + "nameLocation": "1127:7:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 25557, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1114:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "private" + }, + { + "id": 25560, + "nodeType": "VariableDeclaration", + "src": "1158:23:16", + "nodes": [], + "constant": false, + "functionSelector": "61d027b3", + "mutability": "mutable", + "name": "treasury", + "nameLocation": "1173:8:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25559, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1158:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 25562, + "nodeType": "VariableDeclaration", + "src": "1188:22:16", + "nodes": [], + "constant": false, + "functionSelector": "44c63eec", + "mutability": "mutable", + "name": "vesting", + "nameLocation": "1203:7:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1188:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 25564, + "nodeType": "VariableDeclaration", + "src": "1217:24:16", + "nodes": [], + "constant": false, + "functionSelector": "c7c4ff46", + "mutability": "mutable", + "name": "depositor", + "nameLocation": "1232:9:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1217:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 25567, + "nodeType": "VariableDeclaration", + "src": "1250:81:16", + "nodes": [], + "constant": true, + "functionSelector": "676d3563", + "mutability": "constant", + "name": "UNIV2_ROUTER", + "nameLocation": "1274:12:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1250:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "hexValue": "307837613235306435363330423463463533393733396446324335644163623463363539463234383844", + "id": 25566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1289:42:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D" + }, + "visibility": "public" + }, + { + "id": 25569, + "nodeType": "VariableDeclaration", + "src": "1338:40:16", + "nodes": [], + "constant": false, + "functionSelector": "f40acc3d", + "mutability": "immutable", + "name": "UNISWAP_V2_PAIR", + "nameLocation": "1363:15:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1338:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 25571, + "nodeType": "VariableDeclaration", + "src": "1387:24:16", + "nodes": [], + "constant": false, + "functionSelector": "f2b6b501", + "mutability": "mutable", + "name": "taxesRemoved", + "nameLocation": "1399:12:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 25570, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1387:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "public" + }, + { + "id": 25574, + "nodeType": "VariableDeclaration", + "src": "1513:28:16", + "nodes": [], + "constant": false, + "documentation": { + "id": 25572, + "nodeType": "StructuredDocumentation", + "src": "1415:92:16", + "text": "@dev Once true, taxes are permanently set to 0 and CAN NOT be increased in the future." + }, + "functionSelector": "8f3fa860", + "mutability": "mutable", + "name": "maxWalletSize", + "nameLocation": "1528:13:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1513:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 25576, + "nodeType": "VariableDeclaration", + "src": "1548:26:16", + "nodes": [], + "constant": false, + "functionSelector": "8c0b5e22", + "mutability": "mutable", + "name": "maxTxAmount", + "nameLocation": "1563:11:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25575, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1548:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 25578, + "nodeType": "VariableDeclaration", + "src": "1583:38:16", + "nodes": [], + "constant": false, + "functionSelector": "090f215c", + "mutability": "mutable", + "name": "maxContractTokenBalance", + "nameLocation": "1598:23:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1583:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 25581, + "nodeType": "VariableDeclaration", + "src": "1628:19:16", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "inSwap", + "nameLocation": "1633:6:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 25579, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1628:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "hexValue": "66616c7365", + "id": 25580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1642:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "internal" + }, + { + "id": 25585, + "nodeType": "VariableDeclaration", + "src": "1680:41:16", + "nodes": [], + "constant": false, + "functionSelector": "f9f92be4", + "mutability": "mutable", + "name": "blacklist", + "nameLocation": "1712:9:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 25584, + "keyType": { + "id": 25582, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1688:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1680:24:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 25583, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1699:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "id": 25590, + "nodeType": "VariableDeclaration", + "src": "1834:41:16", + "nodes": [], + "constant": false, + "documentation": { + "id": 25586, + "nodeType": "StructuredDocumentation", + "src": "1740:88:16", + "text": "@dev If an address is blacklisted, they cannot perform transfer() or transferFrom()." + }, + "functionSelector": "9b19251a", + "mutability": "mutable", + "name": "whitelist", + "nameLocation": "1866:9:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 25589, + "keyType": { + "id": 25587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1842:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1834:24:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 25588, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1853:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "id": 25595, + "nodeType": "VariableDeclaration", + "src": "1980:46:16", + "nodes": [], + "constant": false, + "documentation": { + "id": 25591, + "nodeType": "StructuredDocumentation", + "src": "1894:80:16", + "text": "@dev Any transfer that involves a whitelisted address, will not incur a tax." + }, + "functionSelector": "a3504e7c", + "mutability": "mutable", + "name": "senderTaxType", + "nameLocation": "2013:13:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + }, + "typeName": { + "id": 25594, + "keyType": { + "id": 25592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1988:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1980:25:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + }, + "valueType": { + "id": 25593, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1999:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + }, + "visibility": "public" + }, + { + "id": 25600, + "nodeType": "VariableDeclaration", + "src": "2109:48:16", + "nodes": [], + "constant": false, + "documentation": { + "id": 25596, + "nodeType": "StructuredDocumentation", + "src": "2040:63:16", + "text": "@dev Identifies tax type for msg.sender of transfer() call." + }, + "functionSelector": "9af98541", + "mutability": "mutable", + "name": "receiverTaxType", + "nameLocation": "2142:15:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + }, + "typeName": { + "id": 25599, + "keyType": { + "id": 25597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2117:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2109:25:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + }, + "valueType": { + "id": 25598, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2128:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + }, + "visibility": "public" + }, + { + "id": 25605, + "nodeType": "VariableDeclaration", + "src": "2231:44:16", + "nodes": [], + "constant": false, + "documentation": { + "id": 25601, + "nodeType": "StructuredDocumentation", + "src": "2169:56:16", + "text": "@dev Identifies tax type for _to of transfer() call." + }, + "functionSelector": "97a84f85", + "mutability": "mutable", + "name": "basisPointsTax", + "nameLocation": "2261:14:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_uint256_$", + "typeString": "mapping(uint8 => uint256)" + }, + "typeName": { + "id": 25604, + "keyType": { + "id": 25602, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2239:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "2231:22:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_uint256_$", + "typeString": "mapping(uint8 => uint256)" + }, + "valueType": { + "id": 25603, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2248:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "id": 25610, + "nodeType": "VariableDeclaration", + "src": "2354:42:16", + "nodes": [], + "constant": false, + "documentation": { + "id": 25606, + "nodeType": "StructuredDocumentation", + "src": "2291:57:16", + "text": "@dev Mapping between taxType and basisPoints (taxed)." + }, + "functionSelector": "b9181611", + "mutability": "mutable", + "name": "authorized", + "nameLocation": "2386:10:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 25609, + "keyType": { + "id": 25607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2362:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2354:24:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 25608, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2373:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "id": 25615, + "nodeType": "VariableDeclaration", + "src": "2496:45:16", + "nodes": [], + "constant": false, + "documentation": { + "id": 25611, + "nodeType": "StructuredDocumentation", + "src": "2414:76:16", + "text": "@dev Mapping of which wallets are authorized to call specific functions." + }, + "functionSelector": "166cc492", + "mutability": "mutable", + "name": "taxesAccrued", + "nameLocation": "2529:12:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_uint256_$", + "typeString": "mapping(uint8 => uint256)" + }, + "typeName": { + "id": 25614, + "keyType": { + "id": 25612, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2504:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "2496:25:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_uint256_$", + "typeString": "mapping(uint8 => uint256)" + }, + "valueType": { + "id": 25613, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2513:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "id": 25619, + "nodeType": "VariableDeclaration", + "src": "2550:46:16", + "nodes": [], + "constant": false, + "functionSelector": "f9079b73", + "mutability": "mutable", + "name": "industryTokens", + "nameLocation": "2582:14:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 25618, + "keyType": { + "id": 25616, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2558:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2550:24:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 25617, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2569:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "id": 25624, + "nodeType": "VariableDeclaration", + "src": "2700:54:16", + "nodes": [], + "constant": false, + "documentation": { + "id": 25620, + "nodeType": "StructuredDocumentation", + "src": "2610:84:16", + "text": "@dev Mapping of how many locked tokens exist in a wallet (In 18 decimal format)." + }, + "functionSelector": "fb8f3cc8", + "mutability": "mutable", + "name": "lifetimeIndustryTokens", + "nameLocation": "2732:22:16", + "scope": 27006, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 25623, + "keyType": { + "id": 25621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2708:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2700:24:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 25622, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2719:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "id": 25763, + "nodeType": "FunctionDefinition", + "src": "3746:1101:16", + "nodes": [], + "body": { + "id": 25762, + "nodeType": "Block", + "src": "4002:845:16", + "nodes": [], + "statements": [ + { + "expression": { + "id": 25646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 25644, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25558, + "src": "4013:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 25645, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4023:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "4013:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 25647, + "nodeType": "ExpressionStatement", + "src": "4013:15:16" + }, + { + "expression": { + "arguments": [ + { + "id": 25649, + "name": "decimalsInput", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25633, + "src": "4054:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 25648, + "name": "_setupDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29069, + "src": "4039:14:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$returns$__$", + "typeString": "function (uint8)" + } + }, + "id": 25650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4039:29:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25651, + "nodeType": "ExpressionStatement", + "src": "4039:29:16" + }, + { + "expression": { + "id": 25660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 25652, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25552, + "src": "4079:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 25659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 25653, + "name": "totalSupplyInput", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25627, + "src": "4094:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 25657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 25654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4114:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 25655, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28657, + "src": "4120:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint8_$", + "typeString": "function () view returns (uint8)" + } + }, + "id": 25656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4120:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4114:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 25658, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4113:18:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4094:37:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4079:52:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 25661, + "nodeType": "ExpressionStatement", + "src": "4079:52:16" + }, + { + "expression": { + "id": 25681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 25662, + "name": "UNISWAP_V2_PAIR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25569, + "src": "4198:15:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 25673, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4321:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + ], + "id": 25672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4313:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 25671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4313:7:16", + "typeDescriptions": {} + } + }, + "id": 25674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4313:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 25676, + "name": "UNIV2_ROUTER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25567, + "src": "4347:12:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 25675, + "name": "IUniswapV2Router02", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29864, + "src": "4328:18:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Router02_$29864_$", + "typeString": "type(contract IUniswapV2Router02)" + } + }, + "id": 25677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4328:32:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$29864", + "typeString": "contract IUniswapV2Router02" + } + }, + "id": 25678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4361:4:16", + "memberName": "WETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 29483, + "src": "4328:37:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_address_$", + "typeString": "function () pure external returns (address)" + } + }, + "id": 25679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4328:39:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 25665, + "name": "UNIV2_ROUTER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25567, + "src": "4267:12:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 25664, + "name": "IUniswapV2Router02", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29864, + "src": "4248:18:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Router02_$29864_$", + "typeString": "type(contract IUniswapV2Router02)" + } + }, + "id": 25666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4248:32:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$29864", + "typeString": "contract IUniswapV2Router02" + } + }, + "id": 25667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4281:7:16", + "memberName": "factory", + "nodeType": "MemberAccess", + "referencedDeclaration": 29478, + "src": "4248:40:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_address_$", + "typeString": "function () pure external returns (address)" + } + }, + "id": 25668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4248:42:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 25663, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29229, + "src": "4216:17:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$29229_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 25669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4216:85:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$29229", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 25670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4302:10:16", + "memberName": "createPair", + "nodeType": "MemberAccess", + "referencedDeclaration": 29218, + "src": "4216:96:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 25680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4216:152:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4198:170:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 25682, + "nodeType": "ExpressionStatement", + "src": "4198:170:16" + }, + { + "expression": { + "id": 25687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 25683, + "name": "senderTaxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25595, + "src": "4382:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + } + }, + "id": 25685, + "indexExpression": { + "id": 25684, + "name": "UNISWAP_V2_PAIR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25569, + "src": "4396:15:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4382:30:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 25686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4415:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4382:34:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 25688, + "nodeType": "ExpressionStatement", + "src": "4382:34:16" + }, + { + "expression": { + "id": 25693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 25689, + "name": "receiverTaxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25600, + "src": "4427:15:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + } + }, + "id": 25691, + "indexExpression": { + "id": 25690, + "name": "UNISWAP_V2_PAIR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25569, + "src": "4443:15:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4427:32:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "32", + "id": 25692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4462:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "4427:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 25694, + "nodeType": "ExpressionStatement", + "src": "4427:36:16" + }, + { + "expression": { + "id": 25703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 25695, + "name": "maxWalletSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25574, + "src": "4476:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 25702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 25696, + "name": "maxWalletSizeInput", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25635, + "src": "4492:18:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 25700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 25697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4514:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 25698, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28657, + "src": "4520:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint8_$", + "typeString": "function () view returns (uint8)" + } + }, + "id": 25699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4520:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4514:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 25701, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4513:18:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4492:39:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4476:55:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 25704, + "nodeType": "ExpressionStatement", + "src": "4476:55:16" + }, + { + "expression": { + "id": 25713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 25705, + "name": "maxTxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25576, + "src": "4542:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 25712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 25706, + "name": "maxTxAmountInput", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25637, + "src": "4556:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 25710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 25707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4576:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 25708, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28657, + "src": "4582:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint8_$", + "typeString": "function () view returns (uint8)" + } + }, + "id": 25709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4582:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4576:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 25711, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4575:18:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4556:37:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4542:51:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 25714, + "nodeType": "ExpressionStatement", + "src": "4542:51:16" + }, + { + "expression": { + "id": 25723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 25715, + "name": "maxContractTokenBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25578, + "src": "4606:23:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 25722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 25716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4632:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 25720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 25717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4637:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 25718, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28657, + "src": "4643:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint8_$", + "typeString": "function () view returns (uint8)" + } + }, + "id": 25719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4643:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4637:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 25721, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4636:18:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4632:22:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:48:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 25724, + "nodeType": "ExpressionStatement", + "src": "4606:48:16" + }, + { + "expression": { + "id": 25732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 25725, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "4667:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25730, + "indexExpression": { + "arguments": [ + { + "id": 25728, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4685:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + ], + "id": 25727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4677:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 25726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4677:7:16", + "typeDescriptions": {} + } + }, + "id": 25729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4677:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4667:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 25731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4694:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4667:31:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 25733, + "nodeType": "ExpressionStatement", + "src": "4667:31:16" + }, + { + "expression": { + "id": 25741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 25734, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "4709:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25739, + "indexExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 25737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4727:1:16", + "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": 25736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4719:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 25735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4719:7:16", + "typeDescriptions": {} + } + }, + "id": 25738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4719:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4709:21:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 25740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4733:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4709:28:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 25742, + "nodeType": "ExpressionStatement", + "src": "4709:28:16" + }, + { + "expression": { + "id": 25748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 25743, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "4748:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25746, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 25744, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28171, + "src": "4758:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 25745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4758:7:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4748:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 25747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4769:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4748:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 25749, + "nodeType": "ExpressionStatement", + "src": "4748:25:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 25751, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28171, + "src": "4792:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 25752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4792:7:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 25759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 25753, + "name": "totalSupplyInput", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25627, + "src": "4801:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 25757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 25754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4821:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 25755, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28657, + "src": "4827:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint8_$", + "typeString": "function () view returns (uint8)" + } + }, + "id": 25756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4827:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4821:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 25758, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4820:18:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4801:37:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 25750, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28957, + "src": "4786:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 25760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4786:53:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25761, + "nodeType": "ExpressionStatement", + "src": "4786:53:16" + } + ] + }, + "documentation": { + "id": 25625, + "nodeType": "StructuredDocumentation", + "src": "2918:822:16", + "text": "@notice Initializes the TaxToken.\n @dev _paused - ERC20 Pausable global state variable, initial state is not paused (\"unpaused\").\n @dev The \"owner\" is the \"admin\" of this contract.\n @dev Initial liquidity, allocated entirely to \"owner\".\n @param totalSupplyInput The total supply of this token (this value is multipled by 10**decimals in constructor).\n @param nameInput The name of this token.\n @param symbolInput The symbol of this token.\n @param decimalsInput The decimal precision of this token.\n @param maxWalletSizeInput The maximum wallet size (this value is multipled by 10**decimals in constructor).\n @param maxTxAmountInput The maximum tx size (this value is multipled by 10**decimals in constructor)." + }, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 25640, + "name": "nameInput", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25629, + "src": "3978:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 25641, + "name": "symbolInput", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25631, + "src": "3989:11:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 25642, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 25639, + "name": "ERC20", + "nameLocations": [ + "3972:5:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29081, + "src": "3972:5:16" + }, + "nodeType": "ModifierInvocation", + "src": "3972:29:16" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 25638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25627, + "mutability": "mutable", + "name": "totalSupplyInput", + "nameLocation": "3773:16:16", + "nodeType": "VariableDeclaration", + "scope": 25763, + "src": "3768:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25626, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3768:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25629, + "mutability": "mutable", + "name": "nameInput", + "nameLocation": "3815:9:16", + "nodeType": "VariableDeclaration", + "scope": 25763, + "src": "3801:23:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 25628, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3801:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25631, + "mutability": "mutable", + "name": "symbolInput", + "nameLocation": "3850:11:16", + "nodeType": "VariableDeclaration", + "scope": 25763, + "src": "3836:25:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 25630, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3836:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25633, + "mutability": "mutable", + "name": "decimalsInput", + "nameLocation": "3879:13:16", + "nodeType": "VariableDeclaration", + "scope": 25763, + "src": "3873:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 25632, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3873:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25635, + "mutability": "mutable", + "name": "maxWalletSizeInput", + "nameLocation": "3911:18:16", + "nodeType": "VariableDeclaration", + "scope": 25763, + "src": "3903:26:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3903:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25637, + "mutability": "mutable", + "name": "maxTxAmountInput", + "nameLocation": "3948:16:16", + "nodeType": "VariableDeclaration", + "scope": 25763, + "src": "3940:24:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3940:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3757:214:16" + }, + "returnParameters": { + "id": 25643, + "nodeType": "ParameterList", + "parameters": [], + "src": "4002:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 25781, + "nodeType": "ModifierDefinition", + "src": "4998:169:16", + "nodes": [], + "body": { + "id": 25780, + "nodeType": "Block", + "src": "5035:132:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 25775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 25771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5054:9:16", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 25769, + "name": "paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26320, + "src": "5055:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 25770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5055:8:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "baseExpression": { + "id": 25772, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "5067:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25774, + "indexExpression": { + "id": 25773, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25766, + "src": "5077:1:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5067:12:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5054:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a7768656e4e6f74506175736564556e6928292c20436f6e74726163742069732063757272656e746c79207061757365642e", + "id": 25776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5081:65:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3c39f80439265a6a4f74c8fe1ccfd8d66c6c16f1d625996d7c17857436eb4e95", + "typeString": "literal_string \"TaxToken.sol::whenNotPausedUni(), Contract is currently paused.\"" + }, + "value": "TaxToken.sol::whenNotPausedUni(), Contract is currently paused." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3c39f80439265a6a4f74c8fe1ccfd8d66c6c16f1d625996d7c17857436eb4e95", + "typeString": "literal_string \"TaxToken.sol::whenNotPausedUni(), Contract is currently paused.\"" + } + ], + "id": 25768, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5046:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 25777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5046:101:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25778, + "nodeType": "ExpressionStatement", + "src": "5046:101:16" + }, + { + "id": 25779, + "nodeType": "PlaceholderStatement", + "src": "5158:1:16" + } + ] + }, + "documentation": { + "id": 25764, + "nodeType": "StructuredDocumentation", + "src": "4914:78:16", + "text": "@dev whenNotPausedUni() is used if the contract MUST be paused (\"paused\")." + }, + "name": "whenNotPausedUni", + "nameLocation": "5007:16:16", + "parameters": { + "id": 25767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25766, + "mutability": "mutable", + "name": "a", + "nameLocation": "5032:1:16", + "nodeType": "VariableDeclaration", + "scope": 25781, + "src": "5024:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5024:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5023:11:16" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 25805, + "nodeType": "ModifierDefinition", + "src": "5260:210:16", + "nodes": [], + "body": { + "id": 25804, + "nodeType": "Block", + "src": "5315:155:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 25799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 25795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 25791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5334:9:16", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 25789, + "name": "paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26320, + "src": "5335:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 25790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5335:8:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "baseExpression": { + "id": 25792, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "5347:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25794, + "indexExpression": { + "id": 25793, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25784, + "src": "5357:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5347:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5334:29:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "baseExpression": { + "id": 25796, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "5367:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25798, + "indexExpression": { + "id": 25797, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25786, + "src": "5377:3:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5367:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5334:47:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a7768656e4e6f745061757365644475616c28292c20436f6e74726163742069732063757272656e746c79207061757365642e", + "id": 25800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5383:66:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_26ec85c254c666ec3821fb11094247ffe6f0691ec482f3d625effe3bdc37a566", + "typeString": "literal_string \"TaxToken.sol::whenNotPausedDual(), Contract is currently paused.\"" + }, + "value": "TaxToken.sol::whenNotPausedDual(), Contract is currently paused." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_26ec85c254c666ec3821fb11094247ffe6f0691ec482f3d625effe3bdc37a566", + "typeString": "literal_string \"TaxToken.sol::whenNotPausedDual(), Contract is currently paused.\"" + } + ], + "id": 25788, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5326:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 25801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5326:124:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25802, + "nodeType": "ExpressionStatement", + "src": "5326:124:16" + }, + { + "id": 25803, + "nodeType": "PlaceholderStatement", + "src": "5461:1:16" + } + ] + }, + "documentation": { + "id": 25782, + "nodeType": "StructuredDocumentation", + "src": "5175:79:16", + "text": "@dev whenNotPausedDual() is used if the contract MUST be paused (\"paused\")." + }, + "name": "whenNotPausedDual", + "nameLocation": "5269:17:16", + "parameters": { + "id": 25787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25784, + "mutability": "mutable", + "name": "_from", + "nameLocation": "5295:5:16", + "nodeType": "VariableDeclaration", + "scope": 25805, + "src": "5287:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25783, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5287:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25786, + "mutability": "mutable", + "name": "_to", + "nameLocation": "5310:3:16", + "nodeType": "VariableDeclaration", + "scope": 25805, + "src": "5302:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5302:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5286:28:16" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 25835, + "nodeType": "ModifierDefinition", + "src": "5562:247:16", + "nodes": [], + "body": { + "id": 25834, + "nodeType": "Block", + "src": "5633:176:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 25829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 25825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 25821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 25817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5652:9:16", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 25815, + "name": "paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26320, + "src": "5653:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 25816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5653:8:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "baseExpression": { + "id": 25818, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "5665:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25820, + "indexExpression": { + "id": 25819, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25808, + "src": "5675:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5665:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5652:29:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "baseExpression": { + "id": 25822, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "5685:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25824, + "indexExpression": { + "id": 25823, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25810, + "src": "5695:3:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5685:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5652:47:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "baseExpression": { + "id": 25826, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "5703:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25828, + "indexExpression": { + "id": 25827, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25812, + "src": "5713:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5703:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5652:69:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a7768656e4e6f7450617573656454726928292c20436f6e74726163742069732063757272656e746c79207061757365642e", + "id": 25830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5723:65:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_49a3da921f76f046784d4619ff95268c0b806d5171b8d2eedc3cc9f3d46db45d", + "typeString": "literal_string \"TaxToken.sol::whenNotPausedTri(), Contract is currently paused.\"" + }, + "value": "TaxToken.sol::whenNotPausedTri(), Contract is currently paused." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_49a3da921f76f046784d4619ff95268c0b806d5171b8d2eedc3cc9f3d46db45d", + "typeString": "literal_string \"TaxToken.sol::whenNotPausedTri(), Contract is currently paused.\"" + } + ], + "id": 25814, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5644:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 25831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5644:145:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25832, + "nodeType": "ExpressionStatement", + "src": "5644:145:16" + }, + { + "id": 25833, + "nodeType": "PlaceholderStatement", + "src": "5800:1:16" + } + ] + }, + "documentation": { + "id": 25806, + "nodeType": "StructuredDocumentation", + "src": "5478:78:16", + "text": "@dev whenNotPausedTri() is used if the contract MUST be paused (\"paused\")." + }, + "name": "whenNotPausedTri", + "nameLocation": "5571:16:16", + "parameters": { + "id": 25813, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25808, + "mutability": "mutable", + "name": "_from", + "nameLocation": "5596:5:16", + "nodeType": "VariableDeclaration", + "scope": 25835, + "src": "5588:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5588:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25810, + "mutability": "mutable", + "name": "_to", + "nameLocation": "5611:3:16", + "nodeType": "VariableDeclaration", + "scope": 25835, + "src": "5603:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25809, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5603:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25812, + "mutability": "mutable", + "name": "_sender", + "nameLocation": "5624:7:16", + "nodeType": "VariableDeclaration", + "scope": 25835, + "src": "5616:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25811, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5616:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5587:45:16" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 25846, + "nodeType": "ModifierDefinition", + "src": "5901:135:16", + "nodes": [], + "body": { + "id": 25845, + "nodeType": "Block", + "src": "5923:113:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 25839, + "name": "paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26320, + "src": "5942:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 25840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5942:8:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a7768656e50617573656428292c20436f6e7472616374206973206e6f742063757272656e746c79207061757365642e", + "id": 25841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5952:63:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8ac840634c330912833cdd22f32d9ca77c1c228a2e001cb6530799ae376d63d7", + "typeString": "literal_string \"TaxToken.sol::whenPaused(), Contract is not currently paused.\"" + }, + "value": "TaxToken.sol::whenPaused(), Contract is not currently paused." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8ac840634c330912833cdd22f32d9ca77c1c228a2e001cb6530799ae376d63d7", + "typeString": "literal_string \"TaxToken.sol::whenPaused(), Contract is not currently paused.\"" + } + ], + "id": 25838, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5934:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 25842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5934:82:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25843, + "nodeType": "ExpressionStatement", + "src": "5934:82:16" + }, + { + "id": 25844, + "nodeType": "PlaceholderStatement", + "src": "6027:1:16" + } + ] + }, + "documentation": { + "id": 25836, + "nodeType": "StructuredDocumentation", + "src": "5817:78:16", + "text": "@dev whenPaused() is used if the contract MUST NOT be paused (\"unpaused\")." + }, + "name": "whenPaused", + "nameLocation": "5910:10:16", + "parameters": { + "id": 25837, + "nodeType": "ParameterList", + "parameters": [], + "src": "5920:2:16" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 25867, + "nodeType": "ModifierDefinition", + "src": "6153:183:16", + "nodes": [], + "body": { + "id": 25866, + "nodeType": "Block", + "src": "6177:159:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 25861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 25854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 25850, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6195:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 25851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6199:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6195:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 25852, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28171, + "src": "6209:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 25853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6209:7:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6195:21:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 25860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 25855, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25610, + "src": "6220:10:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25858, + "indexExpression": { + "expression": { + "id": 25856, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6231:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 25857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6235:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6231:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6220:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "74727565", + "id": 25859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6246:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6220:30:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6195:55:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a6f6e6c79417574686f72697a656428292c206d73672e73656e646572206973206e6f7420617574686f72697a65642e", + "id": 25862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6252:63:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_59a7da7020ad7d16462a1cbe6e9b45e526105c8aa0fd9c13842d4b80d14052f4", + "typeString": "literal_string \"TaxToken.sol::onlyAuthorized(), msg.sender is not authorized.\"" + }, + "value": "TaxToken.sol::onlyAuthorized(), msg.sender is not authorized." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_59a7da7020ad7d16462a1cbe6e9b45e526105c8aa0fd9c13842d4b80d14052f4", + "typeString": "literal_string \"TaxToken.sol::onlyAuthorized(), msg.sender is not authorized.\"" + } + ], + "id": 25849, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6187:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 25863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6187:129:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25864, + "nodeType": "ExpressionStatement", + "src": "6187:129:16" + }, + { + "id": 25865, + "nodeType": "PlaceholderStatement", + "src": "6327:1:16" + } + ] + }, + "documentation": { + "id": 25847, + "nodeType": "StructuredDocumentation", + "src": "6044:103:16", + "text": "@dev isAuthorized() is used if msg.sender MUST be either the owner, or an authorized user/contract." + }, + "name": "onlyAuthorized", + "nameLocation": "6162:14:16", + "parameters": { + "id": 25848, + "nodeType": "ParameterList", + "parameters": [], + "src": "6177:0:16" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 25879, + "nodeType": "ModifierDefinition", + "src": "6344:90:16", + "nodes": [], + "body": { + "id": 25878, + "nodeType": "Block", + "src": "6365:69:16", + "nodes": [], + "statements": [ + { + "expression": { + "id": 25871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 25869, + "name": "inSwap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25581, + "src": "6376:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 25870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6385:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6376:13:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 25872, + "nodeType": "ExpressionStatement", + "src": "6376:13:16" + }, + { + "id": 25873, + "nodeType": "PlaceholderStatement", + "src": "6400:1:16" + }, + { + "expression": { + "id": 25876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 25874, + "name": "inSwap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25581, + "src": "6412:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 25875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6421:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "6412:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 25877, + "nodeType": "ExpressionStatement", + "src": "6412:14:16" + } + ] + }, + "name": "lockTheSwap", + "nameLocation": "6353:11:16", + "parameters": { + "id": 25868, + "nodeType": "ParameterList", + "parameters": [], + "src": "6365:0:16" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 25884, + "nodeType": "EventDefinition", + "src": "6555:22:16", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 25880, + "nodeType": "StructuredDocumentation", + "src": "6491:58:16", + "text": "@dev Emitted when the pause is triggered by `account`." + }, + "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258", + "name": "Paused", + "nameLocation": "6561:6:16", + "parameters": { + "id": 25883, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25882, + "indexed": false, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 25884, + "src": "6568:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25881, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6568:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6567:9:16" + } + }, + { + "id": 25889, + "nodeType": "EventDefinition", + "src": "6646:24:16", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 25885, + "nodeType": "StructuredDocumentation", + "src": "6585:55:16", + "text": "@dev Emitted when the pause is lifted by `account`." + }, + "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa", + "name": "Unpaused", + "nameLocation": "6652:8:16", + "parameters": { + "id": 25888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25887, + "indexed": false, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 25889, + "src": "6661:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25886, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6661:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6660:9:16" + } + }, + { + "id": 25896, + "nodeType": "EventDefinition", + "src": "6723:61:16", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 25890, + "nodeType": "StructuredDocumentation", + "src": "6678:39:16", + "text": "@dev Emitted during transferFrom()." + }, + "eventSelector": "831f3151ac4fe05e9e25607e80c8710ed1dbc868f9edf4c2852b87d14eec373b", + "name": "TransferTax", + "nameLocation": "6729:11:16", + "parameters": { + "id": 25895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25892, + "indexed": true, + "mutability": "mutable", + "name": "_treasury", + "nameLocation": "6757:9:16", + "nodeType": "VariableDeclaration", + "scope": 25896, + "src": "6741:25:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25891, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6741:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25894, + "indexed": false, + "mutability": "mutable", + "name": "_value", + "nameLocation": "6776:6:16", + "nodeType": "VariableDeclaration", + "scope": 25896, + "src": "6768:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6768:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6740:43:16" + } + }, + { + "id": 25903, + "nodeType": "EventDefinition", + "src": "6871:70:16", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 25897, + "nodeType": "StructuredDocumentation", + "src": "6792:73:16", + "text": "@dev Emitted when updating authorized addresses (users or contracts)." + }, + "eventSelector": "351731b7072c47dd7498a1db554905beb804daf2833acfabd6e954d1fac65cfd", + "name": "UpdatedAuthorizedWallets", + "nameLocation": "6877:24:16", + "parameters": { + "id": 25902, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25899, + "indexed": true, + "mutability": "mutable", + "name": "_account", + "nameLocation": "6918:8:16", + "nodeType": "VariableDeclaration", + "scope": 25903, + "src": "6902:24:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25898, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6902:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25901, + "indexed": false, + "mutability": "mutable", + "name": "_state", + "nameLocation": "6933:6:16", + "nodeType": "VariableDeclaration", + "scope": 25903, + "src": "6928:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 25900, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6928:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6901:39:16" + } + }, + { + "id": 25909, + "nodeType": "EventDefinition", + "src": "6949:40:16", + "nodes": [], + "anonymous": false, + "eventSelector": "4ab5be82436d353e61ca18726e984e561f5c1cc7c6d38b29d2553c790434705a", + "name": "TreasuryUpdated", + "nameLocation": "6955:15:16", + "parameters": { + "id": 25908, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25905, + "indexed": false, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 25909, + "src": "6971:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25904, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6971:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25907, + "indexed": false, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 25909, + "src": "6980:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25906, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6980:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6970:18:16" + } + }, + { + "id": 25915, + "nodeType": "EventDefinition", + "src": "6997:39:16", + "nodes": [], + "anonymous": false, + "eventSelector": "a596bfd2fd3f8533a574f9df13f553b4d5751c65c233b974b15fa91891857f3e", + "name": "VestingUpdated", + "nameLocation": "7003:14:16", + "parameters": { + "id": 25914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25911, + "indexed": false, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 25915, + "src": "7018:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25910, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7018:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25913, + "indexed": false, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 25915, + "src": "7027:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25912, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7027:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7017:18:16" + } + }, + { + "id": 25921, + "nodeType": "EventDefinition", + "src": "7044:41:16", + "nodes": [], + "anonymous": false, + "eventSelector": "830becdc16911bd35301d7e36682bb0bf344b313f5406e9eb6d8632a34976344", + "name": "DepositorUpdated", + "nameLocation": "7050:16:16", + "parameters": { + "id": 25920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25917, + "indexed": false, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 25921, + "src": "7067:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7067:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25919, + "indexed": false, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 25921, + "src": "7076:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7076:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7066:18:16" + } + }, + { + "id": 25923, + "nodeType": "EventDefinition", + "src": "7093:32:16", + "nodes": [], + "anonymous": false, + "eventSelector": "c75f57ef1bbf80f914dce2d672e5f9474567b8de900e1580de72874d08ff86b9", + "name": "TaxesPermanentlyRemoved", + "nameLocation": "7099:23:16", + "parameters": { + "id": 25922, + "nodeType": "ParameterList", + "parameters": [], + "src": "7122:2:16" + } + }, + { + "id": 25927, + "nodeType": "EventDefinition", + "src": "7133:28:16", + "nodes": [], + "anonymous": false, + "eventSelector": "ff3dd5e80294197918c284bbfc3dadd97d0b40ce92106110946329088f80068a", + "name": "MaxTxUpdated", + "nameLocation": "7139:12:16", + "parameters": { + "id": 25926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25925, + "indexed": false, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 25927, + "src": "7152:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7152:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7151:9:16" + } + }, + { + "id": 25931, + "nodeType": "EventDefinition", + "src": "7169:32:16", + "nodes": [], + "anonymous": false, + "eventSelector": "12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace", + "name": "MaxWalletUpdated", + "nameLocation": "7175:16:16", + "parameters": { + "id": 25930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25929, + "indexed": false, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 25931, + "src": "7192:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25928, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7192:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7191:9:16" + } + }, + { + "id": 26158, + "nodeType": "FunctionDefinition", + "src": "7300:2624:16", + "nodes": [], + "body": { + "id": 26157, + "nodeType": "Block", + "src": "7382:2542:16", + "nodes": [], + "statements": [ + { + "assignments": [ + 25942 + ], + "declarations": [ + { + "constant": false, + "id": 25942, + "mutability": "mutable", + "name": "_taxType", + "nameLocation": "7502:8:16", + "nodeType": "VariableDeclaration", + "scope": 26157, + "src": "7496:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 25941, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7496:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 25943, + "nodeType": "VariableDeclarationStatement", + "src": "7496:14:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 25960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 25955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 25951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 25947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7531:9:16", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 25945, + "name": "paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26320, + "src": "7532:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 25946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7532:8:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "baseExpression": { + "id": 25948, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "7544:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25950, + "indexExpression": { + "id": 25949, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25933, + "src": "7554:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7544:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7531:29:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "baseExpression": { + "id": 25952, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "7564:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25954, + "indexExpression": { + "id": 25953, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25935, + "src": "7574:3:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7564:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7531:47:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "baseExpression": { + "id": 25956, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "7582:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25959, + "indexExpression": { + "expression": { + "id": 25957, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7592:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 25958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7596:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7592:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7582:21:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7531:72:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a5f7472616e73666572282920636f6e74726163742069732063757272656e746c79207061757365642e", + "id": 25961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7605:57:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1f97acfbe23cf0c20077215b21972e8e6675ee38bd995f2390638e00f2e6475c", + "typeString": "literal_string \"TaxToken.sol::_transfer() contract is currently paused.\"" + }, + "value": "TaxToken.sol::_transfer() contract is currently paused." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1f97acfbe23cf0c20077215b21972e8e6675ee38bd995f2390638e00f2e6475c", + "typeString": "literal_string \"TaxToken.sol::_transfer() contract is currently paused.\"" + } + ], + "id": 25944, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7523:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 25962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7523:140:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25963, + "nodeType": "ExpressionStatement", + "src": "7523:140:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 25969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 25966, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25933, + "src": "7692:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 25965, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28681, + "src": "7682:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 25967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7682:16:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 25968, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25937, + "src": "7702:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7682:27:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e3a3a5f7472616e73666572282920696e73756666696369656e742062616c616e6365", + "id": 25970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7711:44:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9c6308228f090142c97cb3251bd915c367e4d125ae0a38f7da2b302a8cf74a3d", + "typeString": "literal_string \"TaxToken::_transfer() insufficient balance\"" + }, + "value": "TaxToken::_transfer() insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9c6308228f090142c97cb3251bd915c367e4d125ae0a38f7da2b302a8cf74a3d", + "typeString": "literal_string \"TaxToken::_transfer() insufficient balance\"" + } + ], + "id": 25964, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7674:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 25971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7674:82:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25972, + "nodeType": "ExpressionStatement", + "src": "7674:82:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 25976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 25974, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25937, + "src": "7775:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 25975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7785:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7775:11:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e3a3a5f7472616e73666572282920616d6f756e74206d7573742062652067726561746572207468616e2030", + "id": 25977, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7788:53:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_22391b90c69eaa69c2206694b07b965ca7c6b8c59542f069ec42098689bb0eac", + "typeString": "literal_string \"TaxToken::_transfer() amount must be greater than 0\"" + }, + "value": "TaxToken::_transfer() amount must be greater than 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_22391b90c69eaa69c2206694b07b965ca7c6b8c59542f069ec42098689bb0eac", + "typeString": "literal_string \"TaxToken::_transfer() amount must be greater than 0\"" + } + ], + "id": 25973, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7767:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 25978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7767:75:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25979, + "nodeType": "ExpressionStatement", + "src": "7767:75:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 26001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 25994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 25988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 25983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7925:15:16", + "subExpression": { + "baseExpression": { + "id": 25980, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "7926:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25982, + "indexExpression": { + "id": 25981, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25935, + "src": "7936:3:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7926:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 25987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7944:17:16", + "subExpression": { + "baseExpression": { + "id": 25984, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "7945:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25986, + "indexExpression": { + "id": 25985, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25933, + "src": "7955:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7945:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7925:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 25993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7965:22:16", + "subExpression": { + "baseExpression": { + "id": 25989, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "7966:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 25992, + "indexExpression": { + "expression": { + "id": 25990, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7976:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 25991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7980:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7976:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7966:21:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7925:62:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 25995, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25933, + "src": "7991:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "id": 25998, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8008:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + ], + "id": 25997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8000:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 25996, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8000:7:16", + "typeDescriptions": {} + } + }, + "id": 25999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8000:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7991:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7925:88:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 26155, + "nodeType": "Block", + "src": "9854:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 26150, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25933, + "src": "9885:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26151, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25935, + "src": "9892:3:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26152, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25937, + "src": "9897:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 26147, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "9869:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_TaxToken_$27006_$", + "typeString": "type(contract super TaxToken)" + } + }, + "id": 26149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9875:9:16", + "memberName": "_transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 28902, + "src": "9869:15:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 26153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9869:36:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26154, + "nodeType": "ExpressionStatement", + "src": "9869:36:16" + } + ] + }, + "id": 26156, + "nodeType": "IfStatement", + "src": "7921:1996:16", + "trueBody": { + "id": 26146, + "nodeType": "Block", + "src": "8015:1751:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26003, + "name": "maxTxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25576, + "src": "8041:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 26004, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25937, + "src": "8056:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8041:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e3a3a5f7472616e73666572282920616d6f756e742065786365656473206d61785478416d6f756e74", + "id": 26006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8065:50:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_58e58133d829aa45faf10f84da3b968456a2746e61f0a1d30d61326126b7c5e7", + "typeString": "literal_string \"TaxToken::_transfer() amount exceeds maxTxAmount\"" + }, + "value": "TaxToken::_transfer() amount exceeds maxTxAmount" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_58e58133d829aa45faf10f84da3b968456a2746e61f0a1d30d61326126b7c5e7", + "typeString": "literal_string \"TaxToken::_transfer() amount exceeds maxTxAmount\"" + } + ], + "id": 26002, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8032:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8032:84:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26008, + "nodeType": "ExpressionStatement", + "src": "8032:84:16" + }, + { + "expression": { + "arguments": [ + { + "id": 26013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8140:17:16", + "subExpression": { + "baseExpression": { + "id": 26010, + "name": "blacklist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25585, + "src": "8141:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 26012, + "indexExpression": { + "id": 26011, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25933, + "src": "8151:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8141:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e3a3a5f7472616e7366657228292073656e64657220697320626c61636b6c6973746564", + "id": 26014, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8159:45:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0d8bf9351068fcb515d6d1ee943d579826aa4a104064510300fb3ca80b5a6dd9", + "typeString": "literal_string \"TaxToken::_transfer() sender is blacklisted\"" + }, + "value": "TaxToken::_transfer() sender is blacklisted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0d8bf9351068fcb515d6d1ee943d579826aa4a104064510300fb3ca80b5a6dd9", + "typeString": "literal_string \"TaxToken::_transfer() sender is blacklisted\"" + } + ], + "id": 26009, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8131:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8131:74:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26016, + "nodeType": "ExpressionStatement", + "src": "8131:74:16" + }, + { + "expression": { + "arguments": [ + { + "id": 26021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8229:15:16", + "subExpression": { + "baseExpression": { + "id": 26018, + "name": "blacklist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25585, + "src": "8230:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 26020, + "indexExpression": { + "id": 26019, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25935, + "src": "8240:3:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8230:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e3a3a5f7472616e73666572282920726563656976657220697320626c61636b6c6973746564", + "id": 26022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8246:47:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a8e5055e3010354d92dc1e3e25e9cba8ed127aa5bd9556b2bce5a7097d204555", + "typeString": "literal_string \"TaxToken::_transfer() receiver is blacklisted\"" + }, + "value": "TaxToken::_transfer() receiver is blacklisted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a8e5055e3010354d92dc1e3e25e9cba8ed127aa5bd9556b2bce5a7097d204555", + "typeString": "literal_string \"TaxToken::_transfer() receiver is blacklisted\"" + } + ], + "id": 26017, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8220:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8220:74:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26024, + "nodeType": "ExpressionStatement", + "src": "8220:74:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 26029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 26025, + "name": "senderTaxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25595, + "src": "8386:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + } + }, + "id": 26027, + "indexExpression": { + "id": 26026, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25933, + "src": "8400:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8386:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 26028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8410:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8386:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26037, + "nodeType": "IfStatement", + "src": "8382:109:16", + "trueBody": { + "id": 26036, + "nodeType": "Block", + "src": "8413:78:16", + "statements": [ + { + "expression": { + "id": 26034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26030, + "name": "_taxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25942, + "src": "8432:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 26031, + "name": "senderTaxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25595, + "src": "8443:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + } + }, + "id": 26033, + "indexExpression": { + "id": 26032, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25933, + "src": "8457:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8443:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "8432:31:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 26035, + "nodeType": "ExpressionStatement", + "src": "8432:31:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 26042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 26038, + "name": "receiverTaxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25600, + "src": "8511:15:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + } + }, + "id": 26040, + "indexExpression": { + "id": 26039, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25935, + "src": "8527:3:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8511:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 26041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8535:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8511:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26050, + "nodeType": "IfStatement", + "src": "8507:110:16", + "trueBody": { + "id": 26049, + "nodeType": "Block", + "src": "8538:79:16", + "statements": [ + { + "expression": { + "id": 26047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26043, + "name": "_taxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25942, + "src": "8557:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 26044, + "name": "receiverTaxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25600, + "src": "8568:15:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + } + }, + "id": 26046, + "indexExpression": { + "id": 26045, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25935, + "src": "8584:3:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8568:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "8557:31:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 26048, + "nodeType": "ExpressionStatement", + "src": "8557:31:16" + } + ] + } + }, + { + "assignments": [ + 26052 + ], + "declarations": [ + { + "constant": false, + "id": 26052, + "mutability": "mutable", + "name": "_taxAmt", + "nameLocation": "8638:7:16", + "nodeType": "VariableDeclaration", + "scope": 26146, + "src": "8633:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26051, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8633:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 26060, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26053, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25937, + "src": "8648:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "baseExpression": { + "id": 26054, + "name": "basisPointsTax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25605, + "src": "8658:14:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_uint256_$", + "typeString": "mapping(uint8 => uint256)" + } + }, + "id": 26056, + "indexExpression": { + "id": 26055, + "name": "_taxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25942, + "src": "8673:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8658:24:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8648:34:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3130303030", + "id": 26058, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8685:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + }, + "src": "8648:42:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8633:57:16" + }, + { + "assignments": [ + 26062 + ], + "declarations": [ + { + "constant": false, + "id": 26062, + "mutability": "mutable", + "name": "_sendAmt", + "nameLocation": "8710:8:16", + "nodeType": "VariableDeclaration", + "scope": 26146, + "src": "8705:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26061, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8705:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 26066, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26063, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25937, + "src": "8721:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 26064, + "name": "_taxAmt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26052, + "src": "8731:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8721:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8705:33:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26068, + "name": "_taxAmt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26052, + "src": "8763:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 26069, + "name": "_sendAmt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26062, + "src": "8773:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8763:18:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 26071, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25937, + "src": "8785:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8763:29:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e3a3a5f7472616e73666572282920637269746963616c206d617468206572726f72", + "id": 26073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8794:43:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5d5993207527714d67992f620917867413b9451523a1940531ce29ec7f82b116", + "typeString": "literal_string \"TaxToken::_transfer() critical math error\"" + }, + "value": "TaxToken::_transfer() critical math error" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5d5993207527714d67992f620917867413b9451523a1940531ce29ec7f82b116", + "typeString": "literal_string \"TaxToken::_transfer() critical math error\"" + } + ], + "id": 26067, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8755:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8755:83:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26075, + "nodeType": "ExpressionStatement", + "src": "8755:83:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 26082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 26078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26076, + "name": "_taxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25942, + "src": "8985:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "32", + "id": 26077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8997:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8985:13:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26079, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25935, + "src": "9002:3:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 26080, + "name": "depositor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25564, + "src": "9009:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9002:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8985:33:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "@dev if it's a sell (_taxType == 2), _to will be pair address thus we don't want to check for maxWalletSize.", + "id": 26095, + "nodeType": "IfStatement", + "src": "8981:181:16", + "trueBody": { + "id": 26094, + "nodeType": "Block", + "src": "9020:142:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 26085, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25935, + "src": "9057:3:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26084, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28681, + "src": "9047:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 26086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9047:14:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 26087, + "name": "_sendAmt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26062, + "src": "9064:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9047:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 26089, + "name": "maxWalletSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25574, + "src": "9076:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9047:42:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e3a3a5f7472616e73666572282920616d6f756e742065786365656473206d617857616c6c6574416d6f756e74", + "id": 26091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9091:54:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8f2f2feb3ec1cee4cd60bb8dce59fff92c79c008972de4ab1248b7f5fdf42546", + "typeString": "literal_string \"TaxToken::_transfer() amount exceeds maxWalletAmount\"" + }, + "value": "TaxToken::_transfer() amount exceeds maxWalletAmount" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8f2f2feb3ec1cee4cd60bb8dce59fff92c79c008972de4ab1248b7f5fdf42546", + "typeString": "literal_string \"TaxToken::_transfer() amount exceeds maxWalletAmount\"" + } + ], + "id": 26083, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9039:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9039:107:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26093, + "nodeType": "ExpressionStatement", + "src": "9039:107:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 26101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 26098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26096, + "name": "_taxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25942, + "src": "9182:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "32", + "id": 26097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9194:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9182:13:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 26100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "9199:7:16", + "subExpression": { + "id": 26099, + "name": "inSwap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25581, + "src": "9200:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9182:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26126, + "nodeType": "IfStatement", + "src": "9178:410:16", + "trueBody": { + "id": 26125, + "nodeType": "Block", + "src": "9208:380:16", + "statements": [ + { + "assignments": [ + 26103 + ], + "declarations": [ + { + "constant": false, + "id": 26103, + "mutability": "mutable", + "name": "contractTokenBalance", + "nameLocation": "9235:20:16", + "nodeType": "VariableDeclaration", + "scope": 26125, + "src": "9227:28:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9227:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 26106, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 26104, + "name": "getContractTokenBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26958, + "src": "9258:23:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 26105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9258:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9227:56:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26107, + "name": "contractTokenBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26103, + "src": "9307:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 26108, + "name": "maxTxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25576, + "src": "9330:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9307:34:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26115, + "nodeType": "IfStatement", + "src": "9304:116:16", + "trueBody": { + "id": 26114, + "nodeType": "Block", + "src": "9343:77:16", + "statements": [ + { + "expression": { + "id": 26112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26110, + "name": "contractTokenBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26103, + "src": "9366:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 26111, + "name": "maxTxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25576, + "src": "9389:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9366:34:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 26113, + "nodeType": "ExpressionStatement", + "src": "9366:34:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26116, + "name": "contractTokenBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26103, + "src": "9444:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 26117, + "name": "maxContractTokenBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25578, + "src": "9468:23:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9444:47:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26124, + "nodeType": "IfStatement", + "src": "9440:133:16", + "trueBody": { + "id": 26123, + "nodeType": "Block", + "src": "9493:80:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 26120, + "name": "contractTokenBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26103, + "src": "9532:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 26119, + "name": "handleRoyalties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26189, + "src": "9516:15:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 26121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9516:37:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26122, + "nodeType": "ExpressionStatement", + "src": "9516:37:16" + } + ] + } + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 26130, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25933, + "src": "9620:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26131, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25935, + "src": "9627:3:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26132, + "name": "_sendAmt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26062, + "src": "9632:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 26127, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "9604:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_TaxToken_$27006_$", + "typeString": "type(contract super TaxToken)" + } + }, + "id": 26129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9610:9:16", + "memberName": "_transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 28902, + "src": "9604:15:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 26133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9604:37:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26134, + "nodeType": "ExpressionStatement", + "src": "9604:37:16" + }, + { + "expression": { + "arguments": [ + { + "id": 26138, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25933, + "src": "9724:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 26141, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9739:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + ], + "id": 26140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9731:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 26139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9731:7:16", + "typeDescriptions": {} + } + }, + "id": 26142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9731:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26143, + "name": "_taxAmt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26052, + "src": "9746:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 26135, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "9708:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_TaxToken_$27006_$", + "typeString": "type(contract super TaxToken)" + } + }, + "id": 26137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9714:9:16", + "memberName": "_transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 28902, + "src": "9708:15:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 26144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9708:46:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26145, + "nodeType": "ExpressionStatement", + "src": "9708:46:16" + } + ] + } + } + ] + }, + "baseFunctions": [ + 28902 + ], + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "7309:9:16", + "overrides": { + "id": 25939, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "7373:8:16" + }, + "parameters": { + "id": 25938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25933, + "mutability": "mutable", + "name": "_from", + "nameLocation": "7327:5:16", + "nodeType": "VariableDeclaration", + "scope": 26158, + "src": "7319:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25932, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7319:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25935, + "mutability": "mutable", + "name": "_to", + "nameLocation": "7342:3:16", + "nodeType": "VariableDeclaration", + "scope": 26158, + "src": "7334:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 25934, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7334:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25937, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "7355:7:16", + "nodeType": "VariableDeclaration", + "scope": 26158, + "src": "7347:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25936, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7347:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7318:45:16" + }, + "returnParameters": { + "id": 25940, + "nodeType": "ParameterList", + "parameters": [], + "src": "7382:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 26189, + "nodeType": "FunctionDefinition", + "src": "9932:362:16", + "nodes": [], + "body": { + "id": 26188, + "nodeType": "Block", + "src": "10009:285:16", + "nodes": [], + "statements": [ + { + "assignments": [ + 26166 + ], + "declarations": [ + { + "constant": false, + "id": 26166, + "mutability": "mutable", + "name": "amountWeth", + "nameLocation": "10028:10:16", + "nodeType": "VariableDeclaration", + "scope": 26188, + "src": "10020:18:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26165, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10020:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 26170, + "initialValue": { + "arguments": [ + { + "id": 26168, + "name": "_contractTokenBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26160, + "src": "10059:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 26167, + "name": "swapTokensForWeth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26273, + "src": "10041:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) returns (uint256)" + } + }, + "id": 26169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10041:40:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10020:61:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26171, + "name": "amountWeth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26166, + "src": "10098:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 26172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10111:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10098:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26187, + "nodeType": "IfStatement", + "src": "10094:193:16", + "trueBody": { + "id": 26186, + "nodeType": "Block", + "src": "10114:173:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 26178, + "name": "amountWeth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26166, + "src": "10211:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 26175, + "name": "treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25560, + "src": "10182:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26174, + "name": "ITreasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29882, + "src": "10172:9:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ITreasury_$29882_$", + "typeString": "type(contract ITreasury)" + } + }, + "id": 26176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10172:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITreasury_$29882", + "typeString": "contract ITreasury" + } + }, + "id": 26177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10192:18:16", + "memberName": "updateTaxesAccrued", + "nodeType": "MemberAccess", + "referencedDeclaration": 29881, + "src": "10172:38:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 26179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10172:50:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26180, + "nodeType": "ExpressionStatement", + "src": "10172:50:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 26182, + "name": "treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25560, + "src": "10254:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26183, + "name": "amountWeth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26166, + "src": "10264:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 26181, + "name": "TransferTax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25896, + "src": "10242:11:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 26184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10242:33:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26185, + "nodeType": "EmitStatement", + "src": "10237:38:16" + } + ] + } + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26163, + "kind": "modifierInvocation", + "modifierName": { + "id": 26162, + "name": "lockTheSwap", + "nameLocations": [ + "9997:11:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 25879, + "src": "9997:11:16" + }, + "nodeType": "ModifierInvocation", + "src": "9997:11:16" + } + ], + "name": "handleRoyalties", + "nameLocation": "9941:15:16", + "parameters": { + "id": 26161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26160, + "mutability": "mutable", + "name": "_contractTokenBalance", + "nameLocation": "9965:21:16", + "nodeType": "VariableDeclaration", + "scope": 26189, + "src": "9957:29:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9957:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9956:31:16" + }, + "returnParameters": { + "id": 26164, + "nodeType": "ParameterList", + "parameters": [], + "src": "10009:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 26273, + "nodeType": "FunctionDefinition", + "src": "10302:833:16", + "nodes": [], + "body": { + "id": 26272, + "nodeType": "Block", + "src": "10385:750:16", + "nodes": [], + "statements": [ + { + "assignments": [ + 26200 + ], + "declarations": [ + { + "constant": false, + "id": 26200, + "mutability": "mutable", + "name": "path", + "nameLocation": "10473:4:16", + "nodeType": "VariableDeclaration", + "scope": 26272, + "src": "10456:21:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 26198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10456:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 26199, + "nodeType": "ArrayTypeName", + "src": "10456:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "id": 26206, + "initialValue": { + "arguments": [ + { + "hexValue": "32", + "id": 26204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10494:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + } + ], + "id": 26203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "10480:13:16", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 26201, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10484:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 26202, + "nodeType": "ArrayTypeName", + "src": "10484:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 26205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10480:16:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10456:40:16" + }, + { + "expression": { + "id": 26214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26207, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26200, + "src": "10507:4:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 26209, + "indexExpression": { + "hexValue": "30", + "id": 26208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10512:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10507:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 26212, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "10525:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + ], + "id": 26211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10517:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 26210, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10517:7:16", + "typeDescriptions": {} + } + }, + "id": 26213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10517:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10507:23:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 26215, + "nodeType": "ExpressionStatement", + "src": "10507:23:16" + }, + { + "expression": { + "id": 26224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26216, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26200, + "src": "10541:4:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 26218, + "indexExpression": { + "hexValue": "31", + "id": 26217, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10546:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10541:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 26220, + "name": "UNIV2_ROUTER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25567, + "src": "10570:12:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26219, + "name": "IUniswapV2Router02", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29864, + "src": "10551:18:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Router02_$29864_$", + "typeString": "type(contract IUniswapV2Router02)" + } + }, + "id": 26221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10551:32:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$29864", + "typeString": "contract IUniswapV2Router02" + } + }, + "id": 26222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10584:4:16", + "memberName": "WETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 29483, + "src": "10551:37:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_address_$", + "typeString": "function () pure external returns (address)" + } + }, + "id": 26223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10551:39:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10541:49:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 26225, + "nodeType": "ExpressionStatement", + "src": "10541:49:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 26229, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "10620:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + ], + "id": 26228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10612:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 26227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10612:7:16", + "typeDescriptions": {} + } + }, + "id": 26230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10612:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 26233, + "name": "UNIV2_ROUTER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25567, + "src": "10635:12:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10627:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 26231, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10627:7:16", + "typeDescriptions": {} + } + }, + "id": 26234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10627:21:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26235, + "name": "_amountTokensForSwap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26191, + "src": "10650:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 26226, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29058, + "src": "10603:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 26236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10603:68:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26237, + "nodeType": "ExpressionStatement", + "src": "10603:68:16" + }, + { + "assignments": [ + 26242 + ], + "declarations": [ + { + "constant": false, + "id": 26242, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "10701:7:16", + "nodeType": "VariableDeclaration", + "scope": 26272, + "src": "10684:24:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 26240, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10684:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 26241, + "nodeType": "ArrayTypeName", + "src": "10684:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 26250, + "initialValue": { + "arguments": [ + { + "id": 26247, + "name": "_amountTokensForSwap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26191, + "src": "10772:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 26248, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26200, + "src": "10808:4:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "expression": { + "arguments": [ + { + "id": 26244, + "name": "UNIV2_ROUTER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25567, + "src": "10730:12:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26243, + "name": "IUniswapV2Router02", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29864, + "src": "10711:18:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Router02_$29864_$", + "typeString": "type(contract IUniswapV2Router02)" + } + }, + "id": 26245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10711:32:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$29864", + "typeString": "contract IUniswapV2Router02" + } + }, + "id": 26246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10744:13:16", + "memberName": "getAmountsOut", + "nodeType": "MemberAccess", + "referencedDeclaration": 29767, + "src": "10711:46:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256,address[] memory) view external returns (uint256[] memory)" + } + }, + "id": 26249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10711:112:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10684:139:16" + }, + { + "expression": { + "arguments": [ + { + "id": 26255, + "name": "_amountTokensForSwap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26191, + "src": "10963:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 26256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10998:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 26257, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26200, + "src": "11014:4:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "arguments": [ + { + "id": 26260, + "name": "treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25560, + "src": "11041:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11033:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 26258, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11033:7:16", + "typeDescriptions": {} + } + }, + "id": 26261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11033:17:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 26262, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "11065:5:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 26263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11071:9:16", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "11065:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "333030", + "id": 26264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11083:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_300_by_1", + "typeString": "int_const 300" + }, + "value": "300" + }, + "src": "11065:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 26252, + "name": "UNIV2_ROUTER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25567, + "src": "10881:12:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26251, + "name": "IUniswapV2Router02", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29864, + "src": "10862:18:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Router02_$29864_$", + "typeString": "type(contract IUniswapV2Router02)" + } + }, + "id": 26253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10862:32:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$29864", + "typeString": "contract IUniswapV2Router02" + } + }, + "id": 26254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10895:53:16", + "memberName": "swapExactTokensForTokensSupportingFeeOnTransferTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 29837, + "src": "10862:86:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,address[] memory,address,uint256) external" + } + }, + "id": 26266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10862:235:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26267, + "nodeType": "ExpressionStatement", + "src": "10862:235:16" + }, + { + "expression": { + "baseExpression": { + "id": 26268, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26242, + "src": "11117:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 26270, + "indexExpression": { + "hexValue": "31", + "id": 26269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11125:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11117:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 26195, + "id": 26271, + "nodeType": "Return", + "src": "11110:17:16" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "swapTokensForWeth", + "nameLocation": "10311:17:16", + "parameters": { + "id": 26192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26191, + "mutability": "mutable", + "name": "_amountTokensForSwap", + "nameLocation": "10337:20:16", + "nodeType": "VariableDeclaration", + "scope": 26273, + "src": "10329:28:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10329:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10328:30:16" + }, + "returnParameters": { + "id": 26195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26194, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 26273, + "src": "10377:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10377:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10376:9:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 26293, + "nodeType": "FunctionDefinition", + "src": "11332:132:16", + "nodes": [], + "body": { + "id": 26292, + "nodeType": "Block", + "src": "11397:67:16", + "nodes": [], + "statements": [ + { + "expression": { + "id": 26285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26283, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25558, + "src": "11408:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 26284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11418:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "11408:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26286, + "nodeType": "ExpressionStatement", + "src": "11408:14:16" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 26288, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11445:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 26289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11449:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "11445:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26287, + "name": "Paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25884, + "src": "11438:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 26290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11438:18:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26291, + "nodeType": "EmitStatement", + "src": "11433:23:16" + } + ] + }, + "documentation": { + "id": 26274, + "nodeType": "StructuredDocumentation", + "src": "11174:152:16", + "text": "@notice Pause the contract, blocks transfer() and transferFrom().\n @dev Contract MUST NOT be paused to call this, caller must be \"owner\"." + }, + "functionSelector": "8456cb59", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26277, + "kind": "modifierInvocation", + "modifierName": { + "id": 26276, + "name": "onlyOwner", + "nameLocations": [ + "11358:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "11358:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "11358:9:16" + }, + { + "arguments": [ + { + "expression": { + "id": 26279, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11385:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 26280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11389:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "11385:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 26281, + "kind": "modifierInvocation", + "modifierName": { + "id": 26278, + "name": "whenNotPausedUni", + "nameLocations": [ + "11368:16:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 25781, + "src": "11368:16:16" + }, + "nodeType": "ModifierInvocation", + "src": "11368:28:16" + } + ], + "name": "pause", + "nameLocation": "11341:5:16", + "parameters": { + "id": 26275, + "nodeType": "ParameterList", + "parameters": [], + "src": "11346:2:16" + }, + "returnParameters": { + "id": 26282, + "nodeType": "ParameterList", + "parameters": [], + "src": "11397:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26311, + "nodeType": "FunctionDefinition", + "src": "11590:119:16", + "nodes": [], + "body": { + "id": 26310, + "nodeType": "Block", + "src": "11639:70:16", + "nodes": [], + "statements": [ + { + "expression": { + "id": 26303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26301, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25558, + "src": "11650:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 26302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11660:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "11650:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26304, + "nodeType": "ExpressionStatement", + "src": "11650:15:16" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 26306, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11690:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 26307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11694:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "11690:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26305, + "name": "Unpaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25889, + "src": "11681:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 26308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11681:20:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26309, + "nodeType": "EmitStatement", + "src": "11676:25:16" + } + ] + }, + "documentation": { + "id": 26294, + "nodeType": "StructuredDocumentation", + "src": "11472:112:16", + "text": "@notice Unpause the contract.\n @dev Contract MUST be paused to call this, caller must be \"owner\"." + }, + "functionSelector": "3f4ba83a", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26297, + "kind": "modifierInvocation", + "modifierName": { + "id": 26296, + "name": "onlyOwner", + "nameLocations": [ + "11618:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "11618:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "11618:9:16" + }, + { + "id": 26299, + "kind": "modifierInvocation", + "modifierName": { + "id": 26298, + "name": "whenPaused", + "nameLocations": [ + "11628:10:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 25846, + "src": "11628:10:16" + }, + "nodeType": "ModifierInvocation", + "src": "11628:10:16" + } + ], + "name": "unpause", + "nameLocation": "11599:7:16", + "parameters": { + "id": 26295, + "nodeType": "ParameterList", + "parameters": [], + "src": "11606:2:16" + }, + "returnParameters": { + "id": 26300, + "nodeType": "ParameterList", + "parameters": [], + "src": "11639:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26320, + "nodeType": "FunctionDefinition", + "src": "11813:86:16", + "nodes": [], + "body": { + "id": 26319, + "nodeType": "Block", + "src": "11866:33:16", + "nodes": [], + "statements": [ + { + "expression": { + "id": 26317, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25558, + "src": "11884:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 26316, + "id": 26318, + "nodeType": "Return", + "src": "11877:14:16" + } + ] + }, + "documentation": { + "id": 26312, + "nodeType": "StructuredDocumentation", + "src": "11717:90:16", + "text": "@return _paused Indicates whether the contract is paused (true) or not paused (false)." + }, + "functionSelector": "5c975abb", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "paused", + "nameLocation": "11822:6:16", + "parameters": { + "id": 26313, + "nodeType": "ParameterList", + "parameters": [], + "src": "11828:2:16" + }, + "returnParameters": { + "id": 26316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26315, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 26320, + "src": "11860:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 26314, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11860:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "11859:6:16" + }, + "scope": 27006, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 26344, + "nodeType": "FunctionDefinition", + "src": "12344:231:16", + "nodes": [], + "body": { + "id": 26343, + "nodeType": "Block", + "src": "12425:150:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 26333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26331, + "name": "_taxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26325, + "src": "12444:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "33", + "id": 26332, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12455:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "12444:12:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e3a3a75706461746553656e6465725461785479706528292c205f74617854797065206d757374206265206c657373207468616e20332e", + "id": 26334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12458:64:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b701be9022e869570c5cad86941cec1a72f0cbb59f8f0cfeb5b9062867682a7d", + "typeString": "literal_string \"TaxToken::updateSenderTaxType(), _taxType must be less than 3.\"" + }, + "value": "TaxToken::updateSenderTaxType(), _taxType must be less than 3." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b701be9022e869570c5cad86941cec1a72f0cbb59f8f0cfeb5b9062867682a7d", + "typeString": "literal_string \"TaxToken::updateSenderTaxType(), _taxType must be less than 3.\"" + } + ], + "id": 26330, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12436:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12436:87:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26336, + "nodeType": "ExpressionStatement", + "src": "12436:87:16" + }, + { + "expression": { + "id": 26341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26337, + "name": "senderTaxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25595, + "src": "12534:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + } + }, + "id": 26339, + "indexExpression": { + "id": 26338, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26323, + "src": "12548:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12534:22:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 26340, + "name": "_taxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26325, + "src": "12559:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "12534:33:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 26342, + "nodeType": "ExpressionStatement", + "src": "12534:33:16" + } + ] + }, + "documentation": { + "id": 26321, + "nodeType": "StructuredDocumentation", + "src": "11956:382:16", + "text": "@notice Used to store the LP Pair to differ type of transaction. Will be used to mark a BUY.\n @dev _taxType must be lower than 3 because there can only be 3 tax types; buy, sell, & send.\n @param _sender This value is the PAIR address.\n @param _taxType This value must be be 0, 1, or 2. Best to correspond value with the BUY tax type." + }, + "functionSelector": "7097f793", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26328, + "kind": "modifierInvocation", + "modifierName": { + "id": 26327, + "name": "onlyOwner", + "nameLocations": [ + "12415:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "12415:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "12415:9:16" + } + ], + "name": "updateSenderTaxType", + "nameLocation": "12353:19:16", + "parameters": { + "id": 26326, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26323, + "mutability": "mutable", + "name": "_sender", + "nameLocation": "12381:7:16", + "nodeType": "VariableDeclaration", + "scope": 26344, + "src": "12373:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12373:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26325, + "mutability": "mutable", + "name": "_taxType", + "nameLocation": "12396:8:16", + "nodeType": "VariableDeclaration", + "scope": 26344, + "src": "12390:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 26324, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "12390:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "12372:33:16" + }, + "returnParameters": { + "id": 26329, + "nodeType": "ParameterList", + "parameters": [], + "src": "12425:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26368, + "nodeType": "FunctionDefinition", + "src": "12975:241:16", + "nodes": [], + "body": { + "id": 26367, + "nodeType": "Block", + "src": "13060:156:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 26357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26355, + "name": "_taxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26349, + "src": "13079:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "33", + "id": 26356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13090:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "13079:12:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e3a3a75706461746552656365697665725461785479706528292c205f74617854797065206d757374206265206c657373207468616e20332e", + "id": 26358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13093:66:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_948cb65bdc15b8e2ed4360296b005e7af9e946ecd7d37b2c0e9cb3ed9e170f48", + "typeString": "literal_string \"TaxToken::updateReceiverTaxType(), _taxType must be less than 3.\"" + }, + "value": "TaxToken::updateReceiverTaxType(), _taxType must be less than 3." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_948cb65bdc15b8e2ed4360296b005e7af9e946ecd7d37b2c0e9cb3ed9e170f48", + "typeString": "literal_string \"TaxToken::updateReceiverTaxType(), _taxType must be less than 3.\"" + } + ], + "id": 26354, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13071:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13071:89:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26360, + "nodeType": "ExpressionStatement", + "src": "13071:89:16" + }, + { + "expression": { + "id": 26365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26361, + "name": "receiverTaxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25600, + "src": "13171:15:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + } + }, + "id": 26363, + "indexExpression": { + "id": 26362, + "name": "_receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26347, + "src": "13187:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13171:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 26364, + "name": "_taxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26349, + "src": "13200:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "13171:37:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 26366, + "nodeType": "ExpressionStatement", + "src": "13171:37:16" + } + ] + }, + "documentation": { + "id": 26345, + "nodeType": "StructuredDocumentation", + "src": "12583:386:16", + "text": "@notice Used to store the LP Pair to differ type of transaction. Will be used to mark a SELL.\n @dev _taxType must be lower than 3 because there can only be 3 tax types; buy, sell, & send.\n @param _receiver This value is the PAIR address.\n @param _taxType This value must be be 0, 1, or 2. Best to correspond value with the SELL tax type." + }, + "functionSelector": "f7808060", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26352, + "kind": "modifierInvocation", + "modifierName": { + "id": 26351, + "name": "onlyOwner", + "nameLocations": [ + "13050:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "13050:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "13050:9:16" + } + ], + "name": "updateReceiverTaxType", + "nameLocation": "12984:21:16", + "parameters": { + "id": 26350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26347, + "mutability": "mutable", + "name": "_receiver", + "nameLocation": "13014:9:16", + "nodeType": "VariableDeclaration", + "scope": 26368, + "src": "13006:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26346, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13006:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26349, + "mutability": "mutable", + "name": "_taxType", + "nameLocation": "13031:8:16", + "nodeType": "VariableDeclaration", + "scope": 26368, + "src": "13025:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 26348, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "13025:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "13005:35:16" + }, + "returnParameters": { + "id": 26353, + "nodeType": "ParameterList", + "parameters": [], + "src": "13060:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26398, + "nodeType": "FunctionDefinition", + "src": "13577:319:16", + "nodes": [], + "body": { + "id": 26397, + "nodeType": "Block", + "src": "13653:243:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26379, + "name": "_bpt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26373, + "src": "13672:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "32303030", + "id": 26380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13680:4:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2000_by_1", + "typeString": "int_const 2000" + }, + "value": "2000" + }, + "src": "13672:12:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e747354617828292c205f627074203e20323030302028323025292e", + "id": 26382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13686:58:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b83bf284ccd7848e7f1eda55b29712a9a17c749369d4b07dc6486d7f85fb35ce", + "typeString": "literal_string \"TaxToken.sol::adjustBasisPointsTax(), _bpt > 2000 (20%).\"" + }, + "value": "TaxToken.sol::adjustBasisPointsTax(), _bpt > 2000 (20%)." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b83bf284ccd7848e7f1eda55b29712a9a17c749369d4b07dc6486d7f85fb35ce", + "typeString": "literal_string \"TaxToken.sol::adjustBasisPointsTax(), _bpt > 2000 (20%).\"" + } + ], + "id": 26378, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13664:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13664:81:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26384, + "nodeType": "ExpressionStatement", + "src": "13664:81:16" + }, + { + "expression": { + "arguments": [ + { + "id": 26387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "13764:13:16", + "subExpression": { + "id": 26386, + "name": "taxesRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25571, + "src": "13765:12:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e747354617828292c205461786174696f6e20686173206265656e2072656d6f7665642e", + "id": 26388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13779:66:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4522019c16cba782fb2b9c46e864e0c9121e1ff865b0dae94be967d1347c7fc5", + "typeString": "literal_string \"TaxToken.sol::adjustBasisPointsTax(), Taxation has been removed.\"" + }, + "value": "TaxToken.sol::adjustBasisPointsTax(), Taxation has been removed." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4522019c16cba782fb2b9c46e864e0c9121e1ff865b0dae94be967d1347c7fc5", + "typeString": "literal_string \"TaxToken.sol::adjustBasisPointsTax(), Taxation has been removed.\"" + } + ], + "id": 26385, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13756:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13756:90:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26390, + "nodeType": "ExpressionStatement", + "src": "13756:90:16" + }, + { + "expression": { + "id": 26395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26391, + "name": "basisPointsTax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25605, + "src": "13857:14:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_uint256_$", + "typeString": "mapping(uint8 => uint256)" + } + }, + "id": 26393, + "indexExpression": { + "id": 26392, + "name": "_taxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26371, + "src": "13872:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13857:24:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 26394, + "name": "_bpt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26373, + "src": "13884:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13857:31:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 26396, + "nodeType": "ExpressionStatement", + "src": "13857:31:16" + } + ] + }, + "documentation": { + "id": 26369, + "nodeType": "StructuredDocumentation", + "src": "13224:347:16", + "text": "@notice Used to map the tax type 0, 1 or 2 with it's corresponding tax percentage.\n @dev Must be lower than 2000 which is equivalent to 20%.\n @param _taxType This value is the tax type. Has to be 0, 1, or 2.\n @param _bpt This is the corresponding percentage that is taken for royalties. 1200 = 12%." + }, + "functionSelector": "5376b092", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26376, + "kind": "modifierInvocation", + "modifierName": { + "id": 26375, + "name": "onlyOwner", + "nameLocations": [ + "13643:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "13643:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "13643:9:16" + } + ], + "name": "adjustBasisPointsTax", + "nameLocation": "13586:20:16", + "parameters": { + "id": 26374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26371, + "mutability": "mutable", + "name": "_taxType", + "nameLocation": "13613:8:16", + "nodeType": "VariableDeclaration", + "scope": 26398, + "src": "13607:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 26370, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "13607:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26373, + "mutability": "mutable", + "name": "_bpt", + "nameLocation": "13628:4:16", + "nodeType": "VariableDeclaration", + "scope": 26398, + "src": "13623:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26372, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13623:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13606:27:16" + }, + "returnParameters": { + "id": 26377, + "nodeType": "ParameterList", + "parameters": [], + "src": "13653:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26445, + "nodeType": "FunctionDefinition", + "src": "14165:429:16", + "nodes": [], + "body": { + "id": 26444, + "nodeType": "Block", + "src": "14227:367:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26407, + "name": "_key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26401, + "src": "14246:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3432", + "id": 26408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14254:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_42_by_1", + "typeString": "int_const 42" + }, + "value": "42" + }, + "src": "14246:10:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e3a3a7065726d616e656e746c7952656d6f7665546178657328292c205f6b657920213d2034322e", + "id": 26410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14258:49:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b604e0b8f1c14dde97866393f5bb2fc3a957dc6f7007aff85e3499c25a8be7b3", + "typeString": "literal_string \"TaxToken::permanentlyRemoveTaxes(), _key != 42.\"" + }, + "value": "TaxToken::permanentlyRemoveTaxes(), _key != 42." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b604e0b8f1c14dde97866393f5bb2fc3a957dc6f7007aff85e3499c25a8be7b3", + "typeString": "literal_string \"TaxToken::permanentlyRemoveTaxes(), _key != 42.\"" + } + ], + "id": 26406, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14238:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14238:70:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26412, + "nodeType": "ExpressionStatement", + "src": "14238:70:16" + }, + { + "expression": { + "arguments": [ + { + "id": 26415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14327:13:16", + "subExpression": { + "id": 26414, + "name": "taxesRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25571, + "src": "14328:12:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a61646a7573744261736973506f696e747354617828292c205461786174696f6e2068617320616c7265616479206265656e2072656d6f7665642e", + "id": 26416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14342:74:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5462b54f26ec619e8c571a2fb70d9fccfd8746f3aa042e2e43eecb471c0c9571", + "typeString": "literal_string \"TaxToken.sol::adjustBasisPointsTax(), Taxation has already been removed.\"" + }, + "value": "TaxToken.sol::adjustBasisPointsTax(), Taxation has already been removed." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5462b54f26ec619e8c571a2fb70d9fccfd8746f3aa042e2e43eecb471c0c9571", + "typeString": "literal_string \"TaxToken.sol::adjustBasisPointsTax(), Taxation has already been removed.\"" + } + ], + "id": 26413, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14319:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14319:98:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26418, + "nodeType": "ExpressionStatement", + "src": "14319:98:16" + }, + { + "expression": { + "id": 26423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26419, + "name": "basisPointsTax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25605, + "src": "14428:14:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_uint256_$", + "typeString": "mapping(uint8 => uint256)" + } + }, + "id": 26421, + "indexExpression": { + "hexValue": "30", + "id": 26420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14443:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14428:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 26422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14448:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14428:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 26424, + "nodeType": "ExpressionStatement", + "src": "14428:21:16" + }, + { + "expression": { + "id": 26429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26425, + "name": "basisPointsTax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25605, + "src": "14460:14:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_uint256_$", + "typeString": "mapping(uint8 => uint256)" + } + }, + "id": 26427, + "indexExpression": { + "hexValue": "31", + "id": 26426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14475:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14460:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 26428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14480:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14460:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 26430, + "nodeType": "ExpressionStatement", + "src": "14460:21:16" + }, + { + "expression": { + "id": 26435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26431, + "name": "basisPointsTax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25605, + "src": "14492:14:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_uint256_$", + "typeString": "mapping(uint8 => uint256)" + } + }, + "id": 26433, + "indexExpression": { + "hexValue": "32", + "id": 26432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14507:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14492:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 26434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14512:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14492:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 26436, + "nodeType": "ExpressionStatement", + "src": "14492:21:16" + }, + { + "expression": { + "id": 26439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26437, + "name": "taxesRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25571, + "src": "14524:12:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 26438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14539:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "14524:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26440, + "nodeType": "ExpressionStatement", + "src": "14524:19:16" + }, + { + "eventCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 26441, + "name": "TaxesPermanentlyRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25923, + "src": "14561:23:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 26442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14561:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26443, + "nodeType": "EmitStatement", + "src": "14556:30:16" + } + ] + }, + "documentation": { + "id": 26399, + "nodeType": "StructuredDocumentation", + "src": "13904:255:16", + "text": "@notice Permanently remove taxes from this contract.\n @dev An input is required here for sanity-check, given importance of this function call (and irreversible nature).\n @param _key This value MUST equal 42 for function to execute." + }, + "functionSelector": "c4bb8cbe", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26404, + "kind": "modifierInvocation", + "modifierName": { + "id": 26403, + "name": "onlyOwner", + "nameLocations": [ + "14217:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "14217:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "14217:9:16" + } + ], + "name": "permanentlyRemoveTaxes", + "nameLocation": "14174:22:16", + "parameters": { + "id": 26402, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26401, + "mutability": "mutable", + "name": "_key", + "nameLocation": "14202:4:16", + "nodeType": "VariableDeclaration", + "scope": 26445, + "src": "14197:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26400, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14197:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14196:11:16" + }, + "returnParameters": { + "id": 26405, + "nodeType": "ParameterList", + "parameters": [], + "src": "14227:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26466, + "nodeType": "FunctionDefinition", + "src": "14624:160:16", + "nodes": [], + "body": { + "id": 26465, + "nodeType": "Block", + "src": "14695:89:16", + "nodes": [], + "statements": [ + { + "expression": { + "id": 26457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26453, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "14706:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 26455, + "indexExpression": { + "id": 26454, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26447, + "src": "14716:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14706:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 26456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14728:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "14706:26:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26458, + "nodeType": "ExpressionStatement", + "src": "14706:26:16" + }, + { + "expression": { + "arguments": [ + { + "id": 26462, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26447, + "src": "14767:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 26459, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "14743:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_TaxToken_$27006_$", + "typeString": "type(contract super TaxToken)" + } + }, + "id": 26461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14749:17:16", + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 28235, + "src": "14743:23:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 26463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14743:33:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26464, + "nodeType": "ExpressionStatement", + "src": "14743:33:16" + } + ] + }, + "baseFunctions": [ + 28235 + ], + "functionSelector": "f2fde38b", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26451, + "kind": "modifierInvocation", + "modifierName": { + "id": 26450, + "name": "onlyOwner", + "nameLocations": [ + "14685:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "14685:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "14685:9:16" + } + ], + "name": "transferOwnership", + "nameLocation": "14633:17:16", + "overrides": { + "id": 26449, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "14676:8:16" + }, + "parameters": { + "id": 26448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26447, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "14659:8:16", + "nodeType": "VariableDeclaration", + "scope": 26466, + "src": "14651:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26446, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14651:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14650:18:16" + }, + "returnParameters": { + "id": 26452, + "nodeType": "ParameterList", + "parameters": [], + "src": "14695:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 26481, + "nodeType": "FunctionDefinition", + "src": "14792:263:16", + "nodes": [], + "body": { + "id": 26480, + "nodeType": "Block", + "src": "14852:203:16", + "nodes": [], + "statements": [ + { + "condition": { + "id": 26472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14907:7:16", + "subExpression": { + "id": 26471, + "name": "inSwap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25581, + "src": "14908:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26479, + "nodeType": "IfStatement", + "src": "14903:82:16", + "trueBody": { + "id": 26478, + "nodeType": "Block", + "src": "14916:69:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 26474, + "name": "getContractTokenBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26958, + "src": "14947:23:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 26475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14947:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 26473, + "name": "handleRoyalties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26189, + "src": "14931:15:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 26476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14931:42:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26477, + "nodeType": "ExpressionStatement", + "src": "14931:42:16" + } + ] + } + } + ] + }, + "functionSelector": "3b6c0334", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26469, + "kind": "modifierInvocation", + "modifierName": { + "id": 26468, + "name": "onlyOwner", + "nameLocations": [ + "14842:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "14842:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "14842:9:16" + } + ], + "name": "distributeRoyaltiesToTreasury", + "nameLocation": "14801:29:16", + "parameters": { + "id": 26467, + "nodeType": "ParameterList", + "parameters": [], + "src": "14830:2:16" + }, + "returnParameters": { + "id": 26470, + "nodeType": "ParameterList", + "parameters": [], + "src": "14852:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26522, + "nodeType": "FunctionDefinition", + "src": "15366:408:16", + "nodes": [], + "body": { + "id": 26521, + "nodeType": "Block", + "src": "15446:328:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26492, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26484, + "src": "15465:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 26495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15485:1:16", + "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": 26494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15477:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 26493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15477:7:16", + "typeDescriptions": {} + } + }, + "id": 26496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15477:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15465:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a757064617465417574686f72697a65644c6973742829205f6f776e6572203d3d2030", + "id": 26498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15489:50:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4136aeccae2e6b70c22c517173f2e7f09b4771a7730ea0abacb1e3d6e29f81a5", + "typeString": "literal_string \"TaxToken.sol::updateAuthorizedList() _owner == 0\"" + }, + "value": "TaxToken.sol::updateAuthorizedList() _owner == 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4136aeccae2e6b70c22c517173f2e7f09b4771a7730ea0abacb1e3d6e29f81a5", + "typeString": "literal_string \"TaxToken.sol::updateAuthorizedList() _owner == 0\"" + } + ], + "id": 26491, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15457:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15457:83:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26500, + "nodeType": "ExpressionStatement", + "src": "15457:83:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 26506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 26502, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25610, + "src": "15559:10:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 26504, + "indexExpression": { + "id": 26503, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26484, + "src": "15570:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15559:20:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 26505, + "name": "_state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26486, + "src": "15583:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15559:30:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a757064617465417574686f72697a65644c6973742829205f6163636f756e7420697320616c72656164792073657420746f205f7374617465", + "id": 26507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15591:72:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ade5b3ed780073685288591a61562f208a6d826896de22437c79d4e3112d1317", + "typeString": "literal_string \"TaxToken.sol::updateAuthorizedList() _account is already set to _state\"" + }, + "value": "TaxToken.sol::updateAuthorizedList() _account is already set to _state" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ade5b3ed780073685288591a61562f208a6d826896de22437c79d4e3112d1317", + "typeString": "literal_string \"TaxToken.sol::updateAuthorizedList() _account is already set to _state\"" + } + ], + "id": 26501, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15551:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15551:113:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26509, + "nodeType": "ExpressionStatement", + "src": "15551:113:16" + }, + { + "expression": { + "id": 26514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26510, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25610, + "src": "15677:10:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 26512, + "indexExpression": { + "id": 26511, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26484, + "src": "15688:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15677:20:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 26513, + "name": "_state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26486, + "src": "15700:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15677:29:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26515, + "nodeType": "ExpressionStatement", + "src": "15677:29:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 26517, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26484, + "src": "15749:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26518, + "name": "_state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26486, + "src": "15759:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26516, + "name": "UpdatedAuthorizedWallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25903, + "src": "15724:24:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,bool)" + } + }, + "id": 26519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15724:42:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26520, + "nodeType": "EmitStatement", + "src": "15719:47:16" + } + ] + }, + "documentation": { + "id": 26482, + "nodeType": "StructuredDocumentation", + "src": "15063:297:16", + "text": "@notice This is used to change the owner's wallet address. Used to give ownership to another wallet.\n @param _account is the address that will change from authorized or not.\n @param _state (True or False) If true, _account is authorized, if false, _account is not authorized." + }, + "functionSelector": "6ef8834a", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26489, + "kind": "modifierInvocation", + "modifierName": { + "id": 26488, + "name": "onlyOwner", + "nameLocations": [ + "15436:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "15436:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "15436:9:16" + } + ], + "name": "updateAuthorizedList", + "nameLocation": "15375:20:16", + "parameters": { + "id": 26487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26484, + "mutability": "mutable", + "name": "_account", + "nameLocation": "15404:8:16", + "nodeType": "VariableDeclaration", + "scope": 26522, + "src": "15396:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26483, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15396:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26486, + "mutability": "mutable", + "name": "_state", + "nameLocation": "15419:6:16", + "nodeType": "VariableDeclaration", + "scope": 26522, + "src": "15414:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 26485, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15414:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15395:31:16" + }, + "returnParameters": { + "id": 26490, + "nodeType": "ParameterList", + "parameters": [], + "src": "15446:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26562, + "nodeType": "FunctionDefinition", + "src": "15965:404:16", + "nodes": [], + "body": { + "id": 26561, + "nodeType": "Block", + "src": "16024:345:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26531, + "name": "_treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26525, + "src": "16043:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 26532, + "name": "treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25560, + "src": "16056:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16043:21:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a7365745472656173757279282920616c72656164792073657420746f2074726561737572792061646472657373", + "id": 26534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16066:61:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8fd2b334ffdaff85e960e68902f1cd8f72ed7a9de0364dd29403a89a8f6a623", + "typeString": "literal_string \"TaxToken.sol::setTreasury() already set to treasury address\"" + }, + "value": "TaxToken.sol::setTreasury() already set to treasury address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8fd2b334ffdaff85e960e68902f1cd8f72ed7a9de0364dd29403a89a8f6a623", + "typeString": "literal_string \"TaxToken.sol::setTreasury() already set to treasury address\"" + } + ], + "id": 26530, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16035:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16035:93:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26536, + "nodeType": "ExpressionStatement", + "src": "16035:93:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26538, + "name": "_treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26525, + "src": "16147:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 26541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16168:1:16", + "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": 26540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16160:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 26539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16160:7:16", + "typeDescriptions": {} + } + }, + "id": 26542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16160:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16147:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a736574547265617375727928292074726561737572792063616e6e6f742062652061646472657373283029", + "id": 26544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16172:59:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3c66fcb98bfd6265dfb328654c191eefaf229c51395ca7d784723bad25c2fb01", + "typeString": "literal_string \"TaxToken.sol::setTreasury() treasury cannot be address(0)\"" + }, + "value": "TaxToken.sol::setTreasury() treasury cannot be address(0)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3c66fcb98bfd6265dfb328654c191eefaf229c51395ca7d784723bad25c2fb01", + "typeString": "literal_string \"TaxToken.sol::setTreasury() treasury cannot be address(0)\"" + } + ], + "id": 26537, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16139:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16139:93:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26546, + "nodeType": "ExpressionStatement", + "src": "16139:93:16" + }, + { + "expression": { + "id": 26549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26547, + "name": "treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25560, + "src": "16245:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 26548, + "name": "_treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26525, + "src": "16256:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16245:20:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 26550, + "nodeType": "ExpressionStatement", + "src": "16245:20:16" + }, + { + "expression": { + "arguments": [ + { + "id": 26552, + "name": "treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25560, + "src": "16292:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "74727565", + "id": 26553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16302:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26551, + "name": "modifyWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26751, + "src": "16276:15:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,bool)" + } + }, + "id": 26554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16276:31:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26555, + "nodeType": "ExpressionStatement", + "src": "16276:31:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 26557, + "name": "treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25560, + "src": "16341:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26558, + "name": "_treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26525, + "src": "16351:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26556, + "name": "TreasuryUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25909, + "src": "16325:15:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 26559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16325:36:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26560, + "nodeType": "EmitStatement", + "src": "16320:41:16" + } + ] + }, + "documentation": { + "id": 26523, + "nodeType": "StructuredDocumentation", + "src": "15782:177:16", + "text": "@notice Set the treasury (contract) which receives taxes generated through transfer() and transferFrom().\n @param _treasury is the contract address of the treasury." + }, + "functionSelector": "f0f44260", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26528, + "kind": "modifierInvocation", + "modifierName": { + "id": 26527, + "name": "onlyOwner", + "nameLocations": [ + "16014:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "16014:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "16014:9:16" + } + ], + "name": "setTreasury", + "nameLocation": "15974:11:16", + "parameters": { + "id": 26526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26525, + "mutability": "mutable", + "name": "_treasury", + "nameLocation": "15994:9:16", + "nodeType": "VariableDeclaration", + "scope": 26562, + "src": "15986:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26524, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15986:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15985:19:16" + }, + "returnParameters": { + "id": 26529, + "nodeType": "ParameterList", + "parameters": [], + "src": "16024:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26615, + "nodeType": "FunctionDefinition", + "src": "16555:492:16", + "nodes": [], + "body": { + "id": 26614, + "nodeType": "Block", + "src": "16612:435:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26571, + "name": "_vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26565, + "src": "16631:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 26572, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25562, + "src": "16643:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16631:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a73657456657374696e67282920616c72656164792073657420746f2074726561737572792061646472657373", + "id": 26574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16652:60:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d9dd20fc9c8f119d4fa3c3125b60c04c689ea63ef75ee062b42c6836c27891f9", + "typeString": "literal_string \"TaxToken.sol::setVesting() already set to treasury address\"" + }, + "value": "TaxToken.sol::setVesting() already set to treasury address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d9dd20fc9c8f119d4fa3c3125b60c04c689ea63ef75ee062b42c6836c27891f9", + "typeString": "literal_string \"TaxToken.sol::setVesting() already set to treasury address\"" + } + ], + "id": 26570, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16623:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16623:90:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26576, + "nodeType": "ExpressionStatement", + "src": "16623:90:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26578, + "name": "_vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26565, + "src": "16732:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 26581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16752:1:16", + "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": 26580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16744:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 26579, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16744:7:16", + "typeDescriptions": {} + } + }, + "id": 26582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16744:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16732:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a73657456657374696e6728292074726561737572792063616e6e6f742062652061646472657373283029", + "id": 26584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16756:58:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6a56bd5b1f0853ef269686d0914724903c5e918d8e0caa011b1200b6e4323cdd", + "typeString": "literal_string \"TaxToken.sol::setVesting() treasury cannot be address(0)\"" + }, + "value": "TaxToken.sol::setVesting() treasury cannot be address(0)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6a56bd5b1f0853ef269686d0914724903c5e918d8e0caa011b1200b6e4323cdd", + "typeString": "literal_string \"TaxToken.sol::setVesting() treasury cannot be address(0)\"" + } + ], + "id": 26577, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16724:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16724:91:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26586, + "nodeType": "ExpressionStatement", + "src": "16724:91:16" + }, + { + "expression": { + "id": 26589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26587, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25562, + "src": "16828:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 26588, + "name": "_vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26565, + "src": "16838:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16828:18:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 26590, + "nodeType": "ExpressionStatement", + "src": "16828:18:16" + }, + { + "expression": { + "arguments": [ + { + "id": 26592, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25562, + "src": "16873:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "74727565", + "id": 26593, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16882:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26591, + "name": "modifyWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26751, + "src": "16857:15:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,bool)" + } + }, + "id": 26594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16857:30:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26595, + "nodeType": "ExpressionStatement", + "src": "16857:30:16" + }, + { + "assignments": [ + 26597 + ], + "declarations": [ + { + "constant": false, + "id": 26597, + "mutability": "mutable", + "name": "amount", + "nameLocation": "16908:6:16", + "nodeType": "VariableDeclaration", + "scope": 26614, + "src": "16900:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16900:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 26603, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 26599, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25562, + "src": "16926:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26598, + "name": "IVesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29888, + "src": "16917:8:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVesting_$29888_$", + "typeString": "type(contract IVesting)" + } + }, + "id": 26600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16917:17:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVesting_$29888", + "typeString": "contract IVesting" + } + }, + "id": 26601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16935:18:16", + "memberName": "getAllVestedTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 29887, + "src": "16917:36:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 26602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16917:38:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16900:55:16" + }, + { + "expression": { + "arguments": [ + { + "id": 26605, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25562, + "src": "16972:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26606, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26597, + "src": "16981:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 26604, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28957, + "src": "16966:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 26607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16966:22:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26608, + "nodeType": "ExpressionStatement", + "src": "16966:22:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 26610, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25562, + "src": "17021:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26611, + "name": "_vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26565, + "src": "17030:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26609, + "name": "VestingUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25915, + "src": "17006:14:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 26612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17006:33:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26613, + "nodeType": "EmitStatement", + "src": "17001:38:16" + } + ] + }, + "documentation": { + "id": 26563, + "nodeType": "StructuredDocumentation", + "src": "16377:172:16", + "text": "@notice Set the vesting (contract) which is then whitelisted and minted the amount needed for vesting.\n @param _vesting is the contract address of the vesting." + }, + "functionSelector": "6f6ff3bc", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26568, + "kind": "modifierInvocation", + "modifierName": { + "id": 26567, + "name": "onlyOwner", + "nameLocations": [ + "16602:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "16602:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "16602:9:16" + } + ], + "name": "setVesting", + "nameLocation": "16564:10:16", + "parameters": { + "id": 26566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26565, + "mutability": "mutable", + "name": "_vesting", + "nameLocation": "16583:8:16", + "nodeType": "VariableDeclaration", + "scope": 26615, + "src": "16575:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26564, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16575:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16574:18:16" + }, + "returnParameters": { + "id": 26569, + "nodeType": "ParameterList", + "parameters": [], + "src": "16612:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26655, + "nodeType": "FunctionDefinition", + "src": "17224:464:16", + "nodes": [], + "body": { + "id": 26654, + "nodeType": "Block", + "src": "17285:403:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26624, + "name": "_depositor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26618, + "src": "17304:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 26625, + "name": "depositor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25564, + "src": "17318:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17304:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a7365746465706f7369746f72282920616c72656164792073657420746f2074726561737572792061646472657373", + "id": 26627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17329:62:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75cceb53eb413a21e857fc1e54c79f8cd613921189af153b3f15bd7759a28d20", + "typeString": "literal_string \"TaxToken.sol::setdepositor() already set to treasury address\"" + }, + "value": "TaxToken.sol::setdepositor() already set to treasury address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75cceb53eb413a21e857fc1e54c79f8cd613921189af153b3f15bd7759a28d20", + "typeString": "literal_string \"TaxToken.sol::setdepositor() already set to treasury address\"" + } + ], + "id": 26623, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17296:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17296:96:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26629, + "nodeType": "ExpressionStatement", + "src": "17296:96:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26631, + "name": "_depositor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26618, + "src": "17411:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 26634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17433:1:16", + "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": 26633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17425:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 26632, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17425:7:16", + "typeDescriptions": {} + } + }, + "id": 26635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17425:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17411:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a7365746465706f7369746f7228292074726561737572792063616e6e6f742062652061646472657373283029", + "id": 26637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17437:60:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_456af4f56327e7253fbf66ccc25dd808ec2d6097ced7191be6b8928dae164565", + "typeString": "literal_string \"TaxToken.sol::setdepositor() treasury cannot be address(0)\"" + }, + "value": "TaxToken.sol::setdepositor() treasury cannot be address(0)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_456af4f56327e7253fbf66ccc25dd808ec2d6097ced7191be6b8928dae164565", + "typeString": "literal_string \"TaxToken.sol::setdepositor() treasury cannot be address(0)\"" + } + ], + "id": 26630, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17403:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17403:95:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26639, + "nodeType": "ExpressionStatement", + "src": "17403:95:16" + }, + { + "expression": { + "id": 26642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26640, + "name": "depositor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25564, + "src": "17511:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 26641, + "name": "_depositor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26618, + "src": "17523:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17511:22:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 26643, + "nodeType": "ExpressionStatement", + "src": "17511:22:16" + }, + { + "expression": { + "arguments": [ + { + "id": 26645, + "name": "depositor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25564, + "src": "17560:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "66616c7365", + "id": 26646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17571:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26644, + "name": "modifyWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26751, + "src": "17544:15:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,bool)" + } + }, + "id": 26647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17544:33:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26648, + "nodeType": "ExpressionStatement", + "src": "17544:33:16" + }, + { + "documentation": "@dev Depositor should not be whitelisted.", + "eventCall": { + "arguments": [ + { + "id": 26650, + "name": "depositor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25564, + "src": "17658:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26651, + "name": "_depositor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26618, + "src": "17669:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26649, + "name": "DepositorUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25921, + "src": "17641:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 26652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17641:39:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26653, + "nodeType": "EmitStatement", + "src": "17636:44:16" + } + ] + }, + "documentation": { + "id": 26616, + "nodeType": "StructuredDocumentation", + "src": "17055:163:16", + "text": "@notice Set the depositor (contract) which is the backend contract for the dapp.\n @param _depositor is the contract address of the depositor contract." + }, + "functionSelector": "f2c098b7", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26621, + "kind": "modifierInvocation", + "modifierName": { + "id": 26620, + "name": "onlyOwner", + "nameLocations": [ + "17275:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "17275:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "17275:9:16" + } + ], + "name": "setDepositor", + "nameLocation": "17233:12:16", + "parameters": { + "id": 26619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26618, + "mutability": "mutable", + "name": "_depositor", + "nameLocation": "17254:10:16", + "nodeType": "VariableDeclaration", + "scope": 26655, + "src": "17246:18:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26617, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17246:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "17245:20:16" + }, + "returnParameters": { + "id": 26622, + "nodeType": "ParameterList", + "parameters": [], + "src": "17285:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26674, + "nodeType": "FunctionDefinition", + "src": "17916:148:16", + "nodes": [], + "body": { + "id": 26673, + "nodeType": "Block", + "src": "17991:73:16", + "nodes": [], + "statements": [ + { + "expression": { + "id": 26671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26663, + "name": "maxContractTokenBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25578, + "src": "18002:23:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26664, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26658, + "src": "18029:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 26665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18039:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 26666, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28657, + "src": "18045:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint8_$", + "typeString": "function () view returns (uint8)" + } + }, + "id": 26667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18045:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "18039:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18029:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 26670, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "18028:28:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18002:54:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 26672, + "nodeType": "ExpressionStatement", + "src": "18002:54:16" + } + ] + }, + "documentation": { + "id": 26656, + "nodeType": "StructuredDocumentation", + "src": "17696:214:16", + "text": "@notice Updates the maxContractTokebBalance var which is used to set the distribution threshhold of royalties to the Treasury.\n @param _amount is the amount of tokens that need to be hit to distribute." + }, + "functionSelector": "a97ed4d2", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26661, + "kind": "modifierInvocation", + "modifierName": { + "id": 26660, + "name": "onlyOwner", + "nameLocations": [ + "17981:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "17981:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "17981:9:16" + } + ], + "name": "updateMaxContractTokenBalance", + "nameLocation": "17925:29:16", + "parameters": { + "id": 26659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26658, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "17963:7:16", + "nodeType": "VariableDeclaration", + "scope": 26674, + "src": "17955:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26657, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17955:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17954:17:16" + }, + "returnParameters": { + "id": 26662, + "nodeType": "ParameterList", + "parameters": [], + "src": "17991:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26704, + "nodeType": "FunctionDefinition", + "src": "18347:278:16", + "nodes": [], + "body": { + "id": 26703, + "nodeType": "Block", + "src": "18415:210:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26683, + "name": "_maxTxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26677, + "src": "18434:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 26684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18449:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18434:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a7570646174654d61785478416d6f756e742829205f6d61785478416d6f756e74206d7573742062652067742030", + "id": 26686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18452:61:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25c420d42d41366d2ad1ff9d7834da230d8ff2c0c2cb66ef6d56d8bb56039760", + "typeString": "literal_string \"TaxToken.sol::updateMaxTxAmount() _maxTxAmount must be gt 0\"" + }, + "value": "TaxToken.sol::updateMaxTxAmount() _maxTxAmount must be gt 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25c420d42d41366d2ad1ff9d7834da230d8ff2c0c2cb66ef6d56d8bb56039760", + "typeString": "literal_string \"TaxToken.sol::updateMaxTxAmount() _maxTxAmount must be gt 0\"" + } + ], + "id": 26682, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18426:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18426:88:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26688, + "nodeType": "ExpressionStatement", + "src": "18426:88:16" + }, + { + "expression": { + "id": 26697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26689, + "name": "maxTxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25576, + "src": "18527:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26690, + "name": "_maxTxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26677, + "src": "18542:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 26691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18557:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 26692, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28657, + "src": "18563:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint8_$", + "typeString": "function () view returns (uint8)" + } + }, + "id": 26693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18563:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "18557:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18542:31:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 26696, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "18541:33:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18527:47:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 26698, + "nodeType": "ExpressionStatement", + "src": "18527:47:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 26700, + "name": "maxTxAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25576, + "src": "18605:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 26699, + "name": "MaxTxUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25927, + "src": "18592:12:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 26701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18592:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26702, + "nodeType": "EmitStatement", + "src": "18587:30:16" + } + ] + }, + "documentation": { + "id": 26675, + "nodeType": "StructuredDocumentation", + "src": "18072:269:16", + "text": "@notice Adjust maxTxAmount value (maximum amount transferrable in a single transaction).\n @dev Does not affect whitelisted wallets.\n @param _maxTxAmount is the max amount of tokens that can be transacted at one time for a non-whitelisted wallet." + }, + "functionSelector": "6256d181", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26680, + "kind": "modifierInvocation", + "modifierName": { + "id": 26679, + "name": "onlyOwner", + "nameLocations": [ + "18405:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "18405:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "18405:9:16" + } + ], + "name": "updateMaxTxAmount", + "nameLocation": "18356:17:16", + "parameters": { + "id": 26678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26677, + "mutability": "mutable", + "name": "_maxTxAmount", + "nameLocation": "18382:12:16", + "nodeType": "VariableDeclaration", + "scope": 26704, + "src": "18374:20:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18374:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18373:22:16" + }, + "returnParameters": { + "id": 26681, + "nodeType": "ParameterList", + "parameters": [], + "src": "18415:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26734, + "nodeType": "FunctionDefinition", + "src": "18883:298:16", + "nodes": [], + "body": { + "id": 26733, + "nodeType": "Block", + "src": "18955:226:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26713, + "name": "_maxWalletSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26707, + "src": "18974:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 26714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18991:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18974:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a7570646174654d617857616c6c657453697a652829205f6d617857616c6c657453697a65206d7573742062652067742030", + "id": 26716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18994:65:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cb5e43ec07cb462f298e1014d3eb3b86e7fc50adcddedb4b8adadac38afa3308", + "typeString": "literal_string \"TaxToken.sol::updateMaxWalletSize() _maxWalletSize must be gt 0\"" + }, + "value": "TaxToken.sol::updateMaxWalletSize() _maxWalletSize must be gt 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cb5e43ec07cb462f298e1014d3eb3b86e7fc50adcddedb4b8adadac38afa3308", + "typeString": "literal_string \"TaxToken.sol::updateMaxWalletSize() _maxWalletSize must be gt 0\"" + } + ], + "id": 26712, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18966:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18966:94:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26718, + "nodeType": "ExpressionStatement", + "src": "18966:94:16" + }, + { + "expression": { + "id": 26727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 26719, + "name": "maxWalletSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25574, + "src": "19073:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26720, + "name": "_maxWalletSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26707, + "src": "19090:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 26721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19107:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 26722, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28657, + "src": "19113:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint8_$", + "typeString": "function () view returns (uint8)" + } + }, + "id": 26723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19113:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "19107:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19090:33:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 26726, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19089:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19073:51:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 26728, + "nodeType": "ExpressionStatement", + "src": "19073:51:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 26730, + "name": "maxWalletSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25574, + "src": "19159:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 26729, + "name": "MaxWalletUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25931, + "src": "19142:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 26731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19142:31:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26732, + "nodeType": "EmitStatement", + "src": "19137:36:16" + } + ] + }, + "documentation": { + "id": 26705, + "nodeType": "StructuredDocumentation", + "src": "18633:244:16", + "text": "@notice This function is used to set the max amount of tokens a wallet can hold.\n @dev Does not affect whitelisted wallets.\n @param _maxWalletSize is the max amount of tokens that can be held on a non-whitelisted wallet." + }, + "functionSelector": "24887e80", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26710, + "kind": "modifierInvocation", + "modifierName": { + "id": 26709, + "name": "onlyOwner", + "nameLocations": [ + "18945:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "18945:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "18945:9:16" + } + ], + "name": "updateMaxWalletSize", + "nameLocation": "18892:19:16", + "parameters": { + "id": 26708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26707, + "mutability": "mutable", + "name": "_maxWalletSize", + "nameLocation": "18920:14:16", + "nodeType": "VariableDeclaration", + "scope": 26734, + "src": "18912:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18912:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18911:24:16" + }, + "returnParameters": { + "id": 26711, + "nodeType": "ParameterList", + "parameters": [], + "src": "18955:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26751, + "nodeType": "FunctionDefinition", + "src": "19574:130:16", + "nodes": [], + "body": { + "id": 26750, + "nodeType": "Block", + "src": "19652:52:16", + "nodes": [], + "statements": [ + { + "expression": { + "id": 26748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26744, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "19663:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 26746, + "indexExpression": { + "id": 26745, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26737, + "src": "19673:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19663:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 26747, + "name": "_whitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26739, + "src": "19684:12:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19663:33:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26749, + "nodeType": "ExpressionStatement", + "src": "19663:33:16" + } + ] + }, + "documentation": { + "id": 26735, + "nodeType": "StructuredDocumentation", + "src": "19189:379:16", + "text": "@notice This function is used to add wallets to the whitelist mapping.\n @dev Whitelisted wallets are not affected by maxWalletSize, maxTxAmount, or taxes.\n @param _wallet is the wallet address that will have their whitelist status modified.\n @param _whitelisted use True to whitelist a wallet, otherwise use False to remove wallet from whitelist." + }, + "functionSelector": "060d206e", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26742, + "kind": "modifierInvocation", + "modifierName": { + "id": 26741, + "name": "onlyOwner", + "nameLocations": [ + "19642:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "19642:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "19642:9:16" + } + ], + "name": "modifyWhitelist", + "nameLocation": "19583:15:16", + "parameters": { + "id": 26740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26737, + "mutability": "mutable", + "name": "_wallet", + "nameLocation": "19607:7:16", + "nodeType": "VariableDeclaration", + "scope": 26751, + "src": "19599:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26736, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19599:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26739, + "mutability": "mutable", + "name": "_whitelisted", + "nameLocation": "19621:12:16", + "nodeType": "VariableDeclaration", + "scope": 26751, + "src": "19616:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 26738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "19616:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "19598:36:16" + }, + "returnParameters": { + "id": 26743, + "nodeType": "ParameterList", + "parameters": [], + "src": "19652:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 26824, + "nodeType": "FunctionDefinition", + "src": "20148:952:16", + "nodes": [], + "body": { + "id": 26823, + "nodeType": "Block", + "src": "20226:874:16", + "nodes": [], + "statements": [ + { + "condition": { + "id": 26761, + "name": "_blacklist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26756, + "src": "20241:10:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26816, + "nodeType": "IfStatement", + "src": "20237:814:16", + "trueBody": { + "id": 26815, + "nodeType": "Block", + "src": "20253:798:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 26766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "20276:19:16", + "subExpression": { + "baseExpression": { + "id": 26763, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25590, + "src": "20277:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 26765, + "indexExpression": { + "id": 26764, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26754, + "src": "20287:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20277:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a6d6f64696679426c61636b6c69737428292c2063616e6e6f7420626c61636b6c69737420612077686974656c69737465642077616c6c6574", + "id": 26767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20297:72:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8dbb99e6e299a3c2cdb65b7c997d84d2ebc2e24a5baf2c2f482146a011f03d4b", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist a whitelisted wallet\"" + }, + "value": "TaxToken.sol::modifyBlacklist(), cannot blacklist a whitelisted wallet" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8dbb99e6e299a3c2cdb65b7c997d84d2ebc2e24a5baf2c2f482146a011f03d4b", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist a whitelisted wallet\"" + } + ], + "id": 26762, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20268:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20268:102:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26769, + "nodeType": "ExpressionStatement", + "src": "20268:102:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26771, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26754, + "src": "20393:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 26772, + "name": "treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25560, + "src": "20404:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20393:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a6d6f64696679426c61636b6c69737428292c2063616e6e6f7420626c61636b6c697374207472656173757279", + "id": 26774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20414:60:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_92d050abdf5757221f3960df74755de3d8440cdf5378bc13f440afc685d0e3cc", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist treasury\"" + }, + "value": "TaxToken.sol::modifyBlacklist(), cannot blacklist treasury" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_92d050abdf5757221f3960df74755de3d8440cdf5378bc13f440afc685d0e3cc", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist treasury\"" + } + ], + "id": 26770, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20385:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20385:90:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26776, + "nodeType": "ExpressionStatement", + "src": "20385:90:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26778, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26754, + "src": "20498:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 26779, + "name": "depositor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25564, + "src": "20509:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20498:20:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a6d6f64696679426c61636b6c69737428292c2063616e6e6f7420626c61636b6c697374206465706f7369746f72", + "id": 26781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20520:61:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dfd0cc814aa8b6e45262c939b051624a45cfc8b29ef09b3273c5fffc3e9f5eaf", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist depositor\"" + }, + "value": "TaxToken.sol::modifyBlacklist(), cannot blacklist depositor" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dfd0cc814aa8b6e45262c939b051624a45cfc8b29ef09b3273c5fffc3e9f5eaf", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist depositor\"" + } + ], + "id": 26777, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20490:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20490:92:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26783, + "nodeType": "ExpressionStatement", + "src": "20490:92:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26785, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26754, + "src": "20605:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 26786, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25562, + "src": "20616:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20605:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a6d6f64696679426c61636b6c69737428292c2063616e6e6f7420626c61636b6c6973742076657374696e67", + "id": 26788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20625:59:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7f43d7a0cec6393584cf0585879269fa24666da125167b7fb66c36fceaa118be", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist vesting\"" + }, + "value": "TaxToken.sol::modifyBlacklist(), cannot blacklist vesting" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7f43d7a0cec6393584cf0585879269fa24666da125167b7fb66c36fceaa118be", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist vesting\"" + } + ], + "id": 26784, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20597:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20597:88:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26790, + "nodeType": "ExpressionStatement", + "src": "20597:88:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26792, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26754, + "src": "20708:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 26793, + "name": "UNIV2_ROUTER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25567, + "src": "20719:12:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20708:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a6d6f64696679426c61636b6c69737428292c2063616e6e6f7420626c61636b6c6973742074686520556e697377617020524f55544552", + "id": 26795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20733:70:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2a857c7dd8587af331a70c1a6b99adbebd68437cadeaa4e3fb29afbcf05e58f", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist the Uniswap ROUTER\"" + }, + "value": "TaxToken.sol::modifyBlacklist(), cannot blacklist the Uniswap ROUTER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2a857c7dd8587af331a70c1a6b99adbebd68437cadeaa4e3fb29afbcf05e58f", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist the Uniswap ROUTER\"" + } + ], + "id": 26791, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20700:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20700:104:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26797, + "nodeType": "ExpressionStatement", + "src": "20700:104:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26799, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26754, + "src": "20827:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 26800, + "name": "UNISWAP_V2_PAIR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25569, + "src": "20838:15:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20827:26:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a6d6f64696679426c61636b6c69737428292c2063616e6e6f7420626c61636b6c6973742074686520556e69737761702050414952", + "id": 26802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20855:68:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9fb5646cb9700dab7835a52b080cfb811f3af7a9dfccedbc61066b559c2280c", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist the Uniswap PAIR\"" + }, + "value": "TaxToken.sol::modifyBlacklist(), cannot blacklist the Uniswap PAIR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9fb5646cb9700dab7835a52b080cfb811f3af7a9dfccedbc61066b559c2280c", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist the Uniswap PAIR\"" + } + ], + "id": 26798, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20819:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20819:105:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26804, + "nodeType": "ExpressionStatement", + "src": "20819:105:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26806, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26754, + "src": "20947:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "id": 26809, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "20966:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + ], + "id": 26808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20958:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 26807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20958:7:16", + "typeDescriptions": {} + } + }, + "id": 26810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20958:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20947:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a6d6f64696679426c61636b6c69737428292c2063616e6e6f7420626c61636b6c697374207468697320636f6e7472616374", + "id": 26812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20973:65:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e473275cb95f323c0e004c3332c144dfb5b0dd4ab0c0c8b5828551e5933c9532", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist this contract\"" + }, + "value": "TaxToken.sol::modifyBlacklist(), cannot blacklist this contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e473275cb95f323c0e004c3332c144dfb5b0dd4ab0c0c8b5828551e5933c9532", + "typeString": "literal_string \"TaxToken.sol::modifyBlacklist(), cannot blacklist this contract\"" + } + ], + "id": 26805, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20939:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20939:100:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26814, + "nodeType": "ExpressionStatement", + "src": "20939:100:16" + } + ] + } + }, + { + "expression": { + "id": 26821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26817, + "name": "blacklist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25585, + "src": "21061:9:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 26819, + "indexExpression": { + "id": 26818, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26754, + "src": "21071:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "21061:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 26820, + "name": "_blacklist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26756, + "src": "21082:10:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "21061:31:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 26822, + "nodeType": "ExpressionStatement", + "src": "21061:31:16" + } + ] + }, + "documentation": { + "id": 26752, + "nodeType": "StructuredDocumentation", + "src": "19712:430:16", + "text": "@notice This function is used to add or remove wallets from the blacklist.\n @dev Blacklisted wallets cannot perform transfer() or transferFrom().\n unless it's to or from a whitelisted wallet.\n @param _wallet is the wallet address that will have their blacklist status modified.\n @param _blacklist use True to blacklist a wallet, otherwise use False to remove wallet from blacklist." + }, + "functionSelector": "cc6df138", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26759, + "kind": "modifierInvocation", + "modifierName": { + "id": 26758, + "name": "onlyOwner", + "nameLocations": [ + "20216:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "20216:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "20216:9:16" + } + ], + "name": "modifyBlacklist", + "nameLocation": "20157:15:16", + "parameters": { + "id": 26757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26754, + "mutability": "mutable", + "name": "_wallet", + "nameLocation": "20181:7:16", + "nodeType": "VariableDeclaration", + "scope": 26824, + "src": "20173:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26753, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20173:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26756, + "mutability": "mutable", + "name": "_blacklist", + "nameLocation": "20195:10:16", + "nodeType": "VariableDeclaration", + "scope": 26824, + "src": "20190:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 26755, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20190:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "20172:34:16" + }, + "returnParameters": { + "id": 26760, + "nodeType": "ParameterList", + "parameters": [], + "src": "20226:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26840, + "nodeType": "FunctionDefinition", + "src": "21508:114:16", + "nodes": [], + "body": { + "id": 26839, + "nodeType": "Block", + "src": "21580:42:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 26835, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26827, + "src": "21597:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26836, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26829, + "src": "21606:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 26834, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28957, + "src": "21591:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 26837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21591:23:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26838, + "nodeType": "ExpressionStatement", + "src": "21591:23:16" + } + ] + }, + "documentation": { + "id": 26825, + "nodeType": "StructuredDocumentation", + "src": "21112:390:16", + "text": "@notice This function will create new tokens and adding them to total supply.\n @dev Does not truncate so amount needs to include the 18 decimal points.\n Needed too add new tokens to supply if we want to get listed on multiple exchanges.\n @param _wallet the account we're minting tokens to.\n @param _amount the amount of tokens we're minting." + }, + "functionSelector": "40c10f19", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [], + "id": 26832, + "kind": "modifierInvocation", + "modifierName": { + "id": 26831, + "name": "onlyAuthorized", + "nameLocations": [ + "21563:14:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 25867, + "src": "21563:14:16" + }, + "nodeType": "ModifierInvocation", + "src": "21563:16:16" + } + ], + "name": "mint", + "nameLocation": "21517:4:16", + "parameters": { + "id": 26830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26827, + "mutability": "mutable", + "name": "_wallet", + "nameLocation": "21530:7:16", + "nodeType": "VariableDeclaration", + "scope": 26840, + "src": "21522:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26826, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21522:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26829, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "21547:7:16", + "nodeType": "VariableDeclaration", + "scope": 26840, + "src": "21539:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21539:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21521:34:16" + }, + "returnParameters": { + "id": 26833, + "nodeType": "ParameterList", + "parameters": [], + "src": "21580:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 26856, + "nodeType": "FunctionDefinition", + "src": "21935:114:16", + "nodes": [], + "body": { + "id": 26855, + "nodeType": "Block", + "src": "22007:42:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 26851, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26843, + "src": "22024:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26852, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26845, + "src": "22033:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 26850, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29013, + "src": "22018:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 26853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22018:23:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26854, + "nodeType": "ExpressionStatement", + "src": "22018:23:16" + } + ] + }, + "documentation": { + "id": 26841, + "nodeType": "StructuredDocumentation", + "src": "21630:299:16", + "text": "@notice This function will destroy existing tokens and deduct them from total supply.\n @dev Does not truncate so amount needs to include the 18 decimal points.\n @param _wallet the account we're burning tokens from.\n @param _amount the amount of tokens we're burning." + }, + "functionSelector": "9dc29fac", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [], + "id": 26848, + "kind": "modifierInvocation", + "modifierName": { + "id": 26847, + "name": "onlyAuthorized", + "nameLocations": [ + "21990:14:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 25867, + "src": "21990:14:16" + }, + "nodeType": "ModifierInvocation", + "src": "21990:16:16" + } + ], + "name": "burn", + "nameLocation": "21944:4:16", + "parameters": { + "id": 26846, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26843, + "mutability": "mutable", + "name": "_wallet", + "nameLocation": "21957:7:16", + "nodeType": "VariableDeclaration", + "scope": 26856, + "src": "21949:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26842, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21949:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26845, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "21974:7:16", + "nodeType": "VariableDeclaration", + "scope": 26856, + "src": "21966:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26844, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21966:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21948:34:16" + }, + "returnParameters": { + "id": 26849, + "nodeType": "ParameterList", + "parameters": [], + "src": "22007:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 26884, + "nodeType": "FunctionDefinition", + "src": "22672:222:16", + "nodes": [], + "body": { + "id": 26883, + "nodeType": "Block", + "src": "22752:142:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 26867, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26859, + "src": "22769:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26868, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26861, + "src": "22778:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 26866, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28957, + "src": "22763:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 26869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22763:23:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26870, + "nodeType": "ExpressionStatement", + "src": "22763:23:16" + }, + { + "expression": { + "id": 26875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26871, + "name": "industryTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25619, + "src": "22799:14:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 26873, + "indexExpression": { + "id": 26872, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26859, + "src": "22814:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22799:23:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 26874, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26861, + "src": "22826:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22799:34:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 26876, + "nodeType": "ExpressionStatement", + "src": "22799:34:16" + }, + { + "expression": { + "id": 26881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26877, + "name": "lifetimeIndustryTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25624, + "src": "22844:22:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 26879, + "indexExpression": { + "id": 26878, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26859, + "src": "22867:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22844:31:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 26880, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26861, + "src": "22879:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22844:42:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 26882, + "nodeType": "ExpressionStatement", + "src": "22844:42:16" + } + ] + }, + "documentation": { + "id": 26857, + "nodeType": "StructuredDocumentation", + "src": "22057:609:16", + "text": "@notice This function is used to mint tokens and log their creation to the industry wallet mappings.\n @dev Any tokens minted through this process can only be used inside of the NFT marketplace to mint new NFTS (can only be burned).\n @dev Users may still buy and sell new or prior existing non-minted tokens but these will be soulbound. \n @dev Does not truncate so amount needs to include the 18 decimal points.\n @param _wallet is the wallet address that will recieve these minted tokens.\n @param _amount is the amount of tokens to be minted into _wallet." + }, + "functionSelector": "8f3f5254", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26864, + "kind": "modifierInvocation", + "modifierName": { + "id": 26863, + "name": "onlyAuthorized", + "nameLocations": [ + "22737:14:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 25867, + "src": "22737:14:16" + }, + "nodeType": "ModifierInvocation", + "src": "22737:14:16" + } + ], + "name": "industryMint", + "nameLocation": "22681:12:16", + "parameters": { + "id": 26862, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26859, + "mutability": "mutable", + "name": "_wallet", + "nameLocation": "22702:7:16", + "nodeType": "VariableDeclaration", + "scope": 26884, + "src": "22694:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22694:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26861, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "22719:7:16", + "nodeType": "VariableDeclaration", + "scope": 26884, + "src": "22711:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26860, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22711:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22693:34:16" + }, + "returnParameters": { + "id": 26865, + "nodeType": "ParameterList", + "parameters": [], + "src": "22752:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26944, + "nodeType": "FunctionDefinition", + "src": "23211:562:16", + "nodes": [], + "body": { + "id": 26943, + "nodeType": "Block", + "src": "23291:482:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 26900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26895, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26887, + "src": "23310:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 26898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23329:1:16", + "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": 26897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "23321:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 26896, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23321:7:16", + "typeDescriptions": {} + } + }, + "id": 26899, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23321:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "23310:21:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a696e6475737472794275726e28292c2043616e6e6f74206275726e20746f207a65726f20616464726573732e", + "id": 26901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23333:60:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f231facb1cc5ea0d8e9835d93612e0e56c924e634d7fa7167dd1a834d96471ca", + "typeString": "literal_string \"TaxToken.sol::industryBurn(), Cannot burn to zero address.\"" + }, + "value": "TaxToken.sol::industryBurn(), Cannot burn to zero address." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f231facb1cc5ea0d8e9835d93612e0e56c924e634d7fa7167dd1a834d96471ca", + "typeString": "literal_string \"TaxToken.sol::industryBurn(), Cannot burn to zero address.\"" + } + ], + "id": 26894, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "23302:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23302:92:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26903, + "nodeType": "ExpressionStatement", + "src": "23302:92:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 26906, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26887, + "src": "23423:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26905, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28681, + "src": "23413:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 26907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23413:18:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 26908, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26889, + "src": "23435:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23413:29:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546178546f6b656e2e736f6c3a3a696e6475737472794275726e28292c20496e73756666696369656e742062616c616e6365206f66202450524f564520746f206275726e2e", + "id": 26910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23444:71:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2ebdcc7ad8632b6a53f4f7c5cb04e205990a96d1451e0a0ba18b456da8544235", + "typeString": "literal_string \"TaxToken.sol::industryBurn(), Insufficient balance of $PROVE to burn.\"" + }, + "value": "TaxToken.sol::industryBurn(), Insufficient balance of $PROVE to burn." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2ebdcc7ad8632b6a53f4f7c5cb04e205990a96d1451e0a0ba18b456da8544235", + "typeString": "literal_string \"TaxToken.sol::industryBurn(), Insufficient balance of $PROVE to burn.\"" + } + ], + "id": 26904, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "23405:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 26911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23405:111:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26912, + "nodeType": "ExpressionStatement", + "src": "23405:111:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 26913, + "name": "industryTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25619, + "src": "23533:14:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 26915, + "indexExpression": { + "id": 26914, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26887, + "src": "23548:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23533:23:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 26916, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26889, + "src": "23560:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23533:34:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 26941, + "nodeType": "Block", + "src": "23674:92:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 26931, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26887, + "src": "23695:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26932, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26889, + "src": "23704:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 26930, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29013, + "src": "23689:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 26933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23689:23:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26934, + "nodeType": "ExpressionStatement", + "src": "23689:23:16" + }, + { + "expression": { + "id": 26939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26935, + "name": "industryTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25619, + "src": "23727:14:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 26937, + "indexExpression": { + "id": 26936, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26887, + "src": "23742:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "23727:23:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 26938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23753:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "23727:27:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 26940, + "nodeType": "ExpressionStatement", + "src": "23727:27:16" + } + ] + }, + "id": 26942, + "nodeType": "IfStatement", + "src": "23529:237:16", + "trueBody": { + "id": 26929, + "nodeType": "Block", + "src": "23569:99:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 26919, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26887, + "src": "23590:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 26920, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26889, + "src": "23599:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 26918, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29013, + "src": "23584:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 26921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23584:23:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 26922, + "nodeType": "ExpressionStatement", + "src": "23584:23:16" + }, + { + "expression": { + "id": 26927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 26923, + "name": "industryTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25619, + "src": "23622:14:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 26925, + "indexExpression": { + "id": 26924, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26887, + "src": "23637:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "23622:23:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 26926, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26889, + "src": "23649:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23622:34:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 26928, + "nodeType": "ExpressionStatement", + "src": "23622:34:16" + } + ] + } + } + ] + }, + "documentation": { + "id": 26885, + "nodeType": "StructuredDocumentation", + "src": "22902:303:16", + "text": "@notice This function will destroy existing tokens and deduct them from total supply.\n @dev Does not truncate so amount needs to include the 18 decimal points. \n @param _wallet the account we're burning tokens from.\n @param _amount the amount of tokens we're burning." + }, + "functionSelector": "f5423c89", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 26892, + "kind": "modifierInvocation", + "modifierName": { + "id": 26891, + "name": "onlyAuthorized", + "nameLocations": [ + "23276:14:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 25867, + "src": "23276:14:16" + }, + "nodeType": "ModifierInvocation", + "src": "23276:14:16" + } + ], + "name": "industryBurn", + "nameLocation": "23220:12:16", + "parameters": { + "id": 26890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26887, + "mutability": "mutable", + "name": "_wallet", + "nameLocation": "23241:7:16", + "nodeType": "VariableDeclaration", + "scope": 26944, + "src": "23233:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26886, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23233:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26889, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "23258:7:16", + "nodeType": "VariableDeclaration", + "scope": 26944, + "src": "23250:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26888, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23250:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "23232:34:16" + }, + "returnParameters": { + "id": 26893, + "nodeType": "ParameterList", + "parameters": [], + "src": "23291:0:16" + }, + "scope": 27006, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 26958, + "nodeType": "FunctionDefinition", + "src": "24030:115:16", + "nodes": [], + "body": { + "id": 26957, + "nodeType": "Block", + "src": "24095:50:16", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 26953, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "24131:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + ], + "id": 26952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "24123:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 26951, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24123:7:16", + "typeDescriptions": {} + } + }, + "id": 26954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24123:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26950, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28681, + "src": "24113:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 26955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24113:24:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 26949, + "id": 26956, + "nodeType": "Return", + "src": "24106:31:16" + } + ] + }, + "documentation": { + "id": 26945, + "nodeType": "StructuredDocumentation", + "src": "23802:222:16", + "text": "@notice This functions returns the number of taxToken are inside the contract.\n NOTE: These tokens have most likely been accrued from taxes.\n @return uint256 the num of tokens stored in this contract." + }, + "functionSelector": "317d9453", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getContractTokenBalance", + "nameLocation": "24039:23:16", + "parameters": { + "id": 26946, + "nodeType": "ParameterList", + "parameters": [], + "src": "24062:2:16" + }, + "returnParameters": { + "id": 26949, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26948, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 26958, + "src": "24086:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24086:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "24085:9:16" + }, + "scope": 27006, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 27005, + "nodeType": "FunctionDefinition", + "src": "24759:542:16", + "nodes": [], + "body": { + "id": 27004, + "nodeType": "Block", + "src": "24901:400:16", + "nodes": [], + "statements": [ + { + "assignments": [ + 26973 + ], + "declarations": [ + { + "constant": false, + "id": 26973, + "mutability": "mutable", + "name": "fullBalance", + "nameLocation": "24917:11:16", + "nodeType": "VariableDeclaration", + "scope": 27004, + "src": "24912:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26972, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "24912:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 26983, + "initialValue": { + "arguments": [ + { + "id": 26981, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26961, + "src": "24963:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 26977, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "24946:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TaxToken_$27006", + "typeString": "contract TaxToken" + } + ], + "id": 26976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "24938:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 26975, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24938:7:16", + "typeDescriptions": {} + } + }, + "id": 26978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24938:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 26974, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29158, + "src": "24931:6:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 26979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24931:21:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29158", + "typeString": "contract IERC20" + } + }, + "id": 26980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "24953:9:16", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 29097, + "src": "24931:31:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 26982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24931:40:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24912:59:16" + }, + { + "assignments": [ + 26985 + ], + "declarations": [ + { + "constant": false, + "id": 26985, + "mutability": "mutable", + "name": "industryBalance", + "nameLocation": "24987:15:16", + "nodeType": "VariableDeclaration", + "scope": 27004, + "src": "24982:20:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26984, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "24982:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 26989, + "initialValue": { + "baseExpression": { + "id": 26986, + "name": "industryTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25619, + "src": "25005:14:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 26988, + "indexExpression": { + "id": 26987, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26961, + "src": "25020:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25005:23:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24982:46:16" + }, + { + "assignments": [ + 26991 + ], + "declarations": [ + { + "constant": false, + "id": 26991, + "mutability": "mutable", + "name": "difference", + "nameLocation": "25044:10:16", + "nodeType": "VariableDeclaration", + "scope": 27004, + "src": "25039:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26990, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "25039:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 26995, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 26994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 26992, + "name": "fullBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26973, + "src": "25057:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 26993, + "name": "industryBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26985, + "src": "25071:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25057:29:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "25039:47:16" + }, + { + "expression": { + "components": [ + { + "id": 26996, + "name": "fullBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26973, + "src": "25219:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 26997, + "name": "industryBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26985, + "src": "25232:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 26998, + "name": "difference", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26991, + "src": "25249:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 26999, + "name": "lifetimeIndustryTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25624, + "src": "25261:22:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 27001, + "indexExpression": { + "id": 27000, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26961, + "src": "25284:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25261:31:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 27002, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "25218:75:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,uint256)" + } + }, + "functionReturnParameters": 26971, + "id": 27003, + "nodeType": "Return", + "src": "25211:82:16" + } + ] + }, + "documentation": { + "id": 26959, + "nodeType": "StructuredDocumentation", + "src": "24153:600:16", + "text": "@notice This function is a VIEW function that returns the amount of industry tokens,\n full balance, and normal tokens a wallet has.\n @dev This function is for the front end to pull industry data for a specific wallet.\n @return numTokens the amount of taxTokens the _wallet holds.\n @return numIndustryTokens the amount of tokens they hold that is industry tokens.\n @return numDifference the amount of tokens they have that are NOT industry tokens.\n @return lifetime the amount of industry tokens that have been minted to _wallet in total." + }, + "functionSelector": "b5b44106", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getIndustryTokens", + "nameLocation": "24768:17:16", + "parameters": { + "id": 26962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26961, + "mutability": "mutable", + "name": "_wallet", + "nameLocation": "24794:7:16", + "nodeType": "VariableDeclaration", + "scope": 27005, + "src": "24786:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26960, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24786:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "24785:17:16" + }, + "returnParameters": { + "id": 26971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26964, + "mutability": "mutable", + "name": "numTokens", + "nameLocation": "24831:9:16", + "nodeType": "VariableDeclaration", + "scope": 27005, + "src": "24826:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26963, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "24826:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26966, + "mutability": "mutable", + "name": "numIndustryTokens", + "nameLocation": "24847:17:16", + "nodeType": "VariableDeclaration", + "scope": 27005, + "src": "24842:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26965, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "24842:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26968, + "mutability": "mutable", + "name": "numDifference", + "nameLocation": "24871:13:16", + "nodeType": "VariableDeclaration", + "scope": 27005, + "src": "24866:18:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26967, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "24866:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26970, + "mutability": "mutable", + "name": "lifetime", + "nameLocation": "24891:8:16", + "nodeType": "VariableDeclaration", + "scope": 27005, + "src": "24886:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26969, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "24886:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "24825:75:16" + }, + "scope": 27006, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 25547, + "name": "ERC20", + "nameLocations": [ + "849:5:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29081, + "src": "849:5:16" + }, + "id": 25548, + "nodeType": "InheritanceSpecifier", + "src": "849:5:16" + }, + { + "baseName": { + "id": 25549, + "name": "Ownable", + "nameLocations": [ + "856:7:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28270, + "src": "856:7:16" + }, + "id": 25550, + "nodeType": "InheritanceSpecifier", + "src": "856:7:16" + } + ], + "canonicalName": "TaxToken", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 25546, + "nodeType": "StructuredDocumentation", + "src": "421:407:16", + "text": "@dev The TaxToken is responsible for supporting generic ERC20 functionality including ERC20Pausable functionality.\n The TaxToken will generate taxes on transfer() and transferFrom() calls for non-whitelisted addresses.\n The Admin can specify the tax fee in basis points for buys, sells, and transfers.\n The TaxToken will forward all taxes generated to a Treasury" + }, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 27006, + 28270, + 29081, + 29158, + 28122 + ], + "name": "TaxToken", + "nameLocation": "837:8:16", + "scope": 27007, + "usedErrors": [] + } + ], + "license": "MIT" + }, + "id": 16 +} \ No newline at end of file diff --git a/out/Treasury.sol/Treasury.json b/out/Treasury.sol/Treasury.json new file mode 100644 index 0000000..931dedf --- /dev/null +++ b/out/Treasury.sol/Treasury.json @@ -0,0 +1,7360 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_admin", + "type": "address" + }, + { + "internalType": "address", + "name": "_taxToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_stable", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "asset", + "type": "address" + } + ], + "name": "RoyaltiesDistributed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amountReceived", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newTotal", + "type": "uint256" + } + ], + "name": "RoyaltiesReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "currentStable", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newStable", + "type": "address" + } + ], + "name": "StableUpdated", + "type": "event" + }, + { + "inputs": [], + "name": "UNIV2_ROUTER", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "WETH", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "WethAccruedForTaxType", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "amountRoyaltiesWeth", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "distributeTaxes", + "outputs": [ + { + "internalType": "uint256", + "name": "_amountToDistribute", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "distributionsStable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_path", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "_taxType", + "type": "uint256" + } + ], + "name": "exchangeRateForTaxType", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_path", + "type": "address[]" + } + ], + "name": "exchangeRateForWethToStable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "lock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "safeWithdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_walletCount", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "_wallets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "_percentDistribution", + "type": "uint256[]" + } + ], + "name": "setTaxDistribution", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "stable", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "taxSettings", + "outputs": [ + { + "internalType": "uint256", + "name": "walletCount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "taxToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "taxTokenAccruedForTaxType", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_stable", + "type": "address" + } + ], + "name": "updateStable", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amt", + "type": "uint256" + } + ], + "name": "updateTaxesAccrued", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "viewTaxSettings", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "viewTaxesAccrued", + "outputs": [ + { + "internalType": "uint256", + "name": "_amountAccrued", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x60806040523480156200001157600080fd5b5060405162001a0f38038062001a0f833981016040819052620000349162000270565b600080546001600160a01b03191633908117825560405190918291600080516020620019ef833981519152908290a350600380546001600160a01b038085166001600160a01b03199283161790925560048054928416929091169190911790556200009f8362000142565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001189190620002ba565b600780546001600160a01b0319166001600160a01b039290921691909117905550620002df915050565b6000546001600160a01b03163314620001a25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038116620002095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000199565b600080546040516001600160a01b0380851693921691600080516020620019ef83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b03811681146200026b57600080fd5b919050565b6000806000606084860312156200028657600080fd5b620002918462000253565b9250620002a16020850162000253565b9150620002b16040850162000253565b90509250925092565b600060208284031215620002cd57600080fd5b620002d88262000253565b9392505050565b61170080620002ef6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063838a4107116100c3578063cdb6ee381161007c578063cdb6ee38146102c3578063dd467064146102d6578063ed0ce006146102e9578063f2fde38b146102fc578063f66ed0141461030f578063f851a4401461032257600080fd5b8063838a4107146102435780638da5cb5b1461025657806395e4a6b314610267578063ad5c464814610287578063ba13f4c51461029a578063bf66dc6e146102a357600080fd5b8063676d356311610115578063676d3563146101db57806368a61804146101f6578063715018a6146101fe57806371fc737c14610208578063755965b814610210578063813db8f31461022357600080fd5b80631f72028d146101525780631fc928ae1461017257806322be3de11461019d57806331392fcb146101b057806331e912a8146101c8575b600080fd5b61015a610335565b604051610169939291906111e3565b60405180910390f35b600354610185906001600160a01b031681565b6040516001600160a01b039091168152602001610169565b600454610185906001600160a01b031681565b600b546101ba9081565b604051908152602001610169565b6101ba6101d6366004611337565b610403565b610185737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6006546101ba565b6102066104b2565b005b6101ba61052f565b61020661021e366004611374565b610939565b6101ba610231366004611374565b60096020526000908152604090205481565b61020661025136600461138d565b6109a7565b6000546001600160a01b0316610185565b6101ba61027536600461138d565b600a6020526000908152604090205481565b600754610185906001600160a01b031681565b6101ba60065481565b6101ba6102b1366004611374565b60086020526000908152604090205481565b6102066102d136600461138d565b610add565b6102066102e4366004611374565b610be5565b6101ba6102f73660046113af565b610c7c565b61020661030a36600461138d565b610d37565b61020661031d366004611440565b610e21565b600554610185906001600160a01b031681565b6000606080600b60000154600b600101600b6002018180548060200260200160405190810160405280929190818152602001828054801561039f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610381575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156103f157602002820191906000526020600020905b8154815260200190600101908083116103dd575b50505050509050925092509250909192565b60065460405163d06ca61f60e01b8152600091737a250d5630b4cf539739df2c5dacb4c659f2488d9163d06ca61f916104409186906004016114ba565b600060405180830381865afa15801561045d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261048591908101906114d3565b60018351610493919061157a565b815181106104a3576104a361158d565b60200260200101519050919050565b6000546001600160a01b031633146104e55760405162461bcd60e51b81526004016104dc906115a3565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600654801561093657600060065560075460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d6004820152602481018390526001600160a01b039091169063095ea7b3906044016020604051808303816000875af11580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c691906115d8565b6105d2576105d26115fa565b604080516002808252606082018352600092602083019080368337505060075482519293506001600160a01b0316918391506000906106135761061361158d565b6001600160a01b0392831660209182029290920101526004548251911690829060019081106106445761064461158d565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d6338ed1739836000843061068742617530611610565b6040518663ffffffff1660e01b81526004016106a7959493929190611623565b6000604051808303816000875af11580156106c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106ee91908101906114d3565b50600480546040516370a0823160e01b815230928101929092526000916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561073d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610761919061165f565b905060005b600c548110156109325760006064600b600201838154811061078a5761078a61158d565b9060005260206000200154846107a09190611678565b6107aa919061168f565b600454600c80549293506001600160a01b039091169163a9059cbb9190859081106107d7576107d761158d565b60009182526020909120015460405160e083901b6001600160e01b03191681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610830573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085491906115d8565b610860576108606115fa565b80600a6000600b600101858154811061087b5761087b61158d565b60009182526020808320909101546001600160a01b03168352820192909252604001812080549091906108af908490611610565b9091555050600c8054839081106108c8576108c861158d565b60009182526020918290200154600454604080518581526001600160a01b03928316948101949094529116917f9feb579bbc7ffef3037d91ecb8e45b70c8049afa8741cd4cb398926bd98f6922910160405180910390a2508061092a816116b1565b915050610766565b5050505b90565b6003546001600160a01b0316331461095057600080fd5b80600660008282546109629190611610565b90915550506006546040805183815260208101929092527fe8f58c2c4663d8d9bab1fcd91c3bef339c90e81754e2d0ec7e888c5c0b56b08d910160405180910390a150565b6000546001600160a01b031633146109d15760405162461bcd60e51b81526004016104dc906115a3565b6007546001600160a01b03908116908216036109ed5760006006555b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5f919061165f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610aaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ace91906115d8565b610ada57610ada6115fa565b50565b6000546001600160a01b03163314610b075760405162461bcd60e51b81526004016104dc906115a3565b6004546001600160a01b0390811690821603610b7c5760405162461bcd60e51b815260206004820152602e60248201527f54726561737572792e736f6c3a3a757064617465537461626c6528292076616c60448201526d1d5948185b1c9958591e481cd95d60921b60648201526084016104dc565b600454604080516001600160a01b03928316815291831660208301527fbe67eb17c76f052c9025267eaab09f6b7c384a42bb6830eb5f36665113cadf70910160405180910390a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c0f5760405162461bcd60e51b81526004016104dc906115a3565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610c3e8142611610565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b60008181526008602052604080822054905163d06ca61f60e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9163d06ca61f91610cc3919087906004016114ba565b600060405180830381865afa158015610ce0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d0891908101906114d3565b60018451610d16919061157a565b81518110610d2657610d2661158d565b602002602001015190505b92915050565b6000546001600160a01b03163314610d615760405162461bcd60e51b81526004016104dc906115a3565b6001600160a01b038116610dc65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104dc565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e4b5760405162461bcd60e51b81526004016104dc906115a3565b848314610ed15760405162461bcd60e51b815260206004820152604860248201527f54726561737572792e736f6c3a3a736574546178446973747269627574696f6e60448201527f28292c2077616c6c6574436f756e74206c656e67746820213d2077616c6c65746064820152670e65cd8cadccee8d60c31b608482015260a4016104dc565b848114610f635760405162461bcd60e51b815260206004820152605460248201527f54726561737572792e736f6c3a3a736574546178446973747269627574696f6e60448201527f28292c2077616c6c6574436f756e74206c656e67746820213d2070657263656e6064820152730e888d2e6e8e4d2c4eae8d2dedc5cd8cadccee8d60631b608482015260a4016104dc565b6000805b86811015610fa757838382818110610f8157610f8161158d565b9050602002013582610f939190611610565b915080610f9f816116b1565b915050610f67565b50806064146110285760405162461bcd60e51b815260206004820152604160248201527f54726561737572792e736f6c3a3a736574546178446973747269627574696f6e60448201527f28292c2073756d50657263656e74446973747269627574696f6e20213d2031306064820152600360fc1b608482015260a4016104dc565b6040518060600160405280878152602001868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250505090825250604080516020868102828101820190935286825292830192909187918791829185019084908082843760009201919091525050509152508051600b90815560208083015180516110c392600c9201906110ea565b50604082015180516110df91600284019160209091019061114f565b505050505050505050565b82805482825590600052602060002090810192821561113f579160200282015b8281111561113f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061110a565b5061114b92915061118a565b5090565b82805482825590600052602060002090810192821561113f579160200282015b8281111561113f57825182559160200191906001019061116f565b5b8082111561114b576000815560010161118b565b600081518084526020808501945080840160005b838110156111d85781516001600160a01b0316875295820195908201906001016111b3565b509495945050505050565b838152600060206060818401526111fd606084018661119f565b838103604085015284518082528286019183019060005b8181101561123057835183529284019291840191600101611214565b509098975050505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561127d5761127d61123e565b604052919050565b600067ffffffffffffffff82111561129f5761129f61123e565b5060051b60200190565b80356001600160a01b03811681146112c057600080fd5b919050565b600082601f8301126112d657600080fd5b813560206112eb6112e683611285565b611254565b82815260059290921b8401810191818101908684111561130a57600080fd5b8286015b8481101561132c5761131f816112a9565b835291830191830161130e565b509695505050505050565b60006020828403121561134957600080fd5b813567ffffffffffffffff81111561136057600080fd5b61136c848285016112c5565b949350505050565b60006020828403121561138657600080fd5b5035919050565b60006020828403121561139f57600080fd5b6113a8826112a9565b9392505050565b600080604083850312156113c257600080fd5b823567ffffffffffffffff8111156113d957600080fd5b6113e5858286016112c5565b95602094909401359450505050565b60008083601f84011261140657600080fd5b50813567ffffffffffffffff81111561141e57600080fd5b6020830191508360208260051b850101111561143957600080fd5b9250929050565b60008060008060006060868803121561145857600080fd5b85359450602086013567ffffffffffffffff8082111561147757600080fd5b61148389838a016113f4565b9096509450604088013591508082111561149c57600080fd5b506114a9888289016113f4565b969995985093965092949392505050565b82815260406020820152600061136c604083018461119f565b600060208083850312156114e657600080fd5b825167ffffffffffffffff8111156114fd57600080fd5b8301601f8101851361150e57600080fd5b805161151c6112e682611285565b81815260059190911b8201830190838101908783111561153b57600080fd5b928401925b8284101561155957835182529284019290840190611540565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d3157610d31611564565b634e487b7160e01b600052603260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156115ea57600080fd5b815180151581146113a857600080fd5b634e487b7160e01b600052600160045260246000fd5b80820180821115610d3157610d31611564565b85815284602082015260a06040820152600061164260a083018661119f565b6001600160a01b0394909416606083015250608001529392505050565b60006020828403121561167157600080fd5b5051919050565b8082028115828204841417610d3157610d31611564565b6000826116ac57634e487b7160e01b600052601260045260246000fd5b500490565b6000600182016116c3576116c3611564565b506001019056fea26469706673582212203c7ec3091ab8ec598f46705ce3a77ab2566c8b685e82486782c553c6d00f7d7564736f6c634300081100338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "sourceMap": "560:8820:17:-:0;;;2805:227;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;955:17:20;998:18;;-1:-1:-1;;;;;;998:18:20;699:10:19;998:18:20;;;;;1032:43;;699:10:19;;;;-1:-1:-1;;;;;;;;;;;1032:43:20;955:17;;1032:43;-1:-1:-1;2880:8:17;:20;;-1:-1:-1;;;;;2880:20:17;;;-1:-1:-1;;;;;;2880:20:17;;;;;;;2911:6;:16;;;;;;;;;;;;;;;2940:25;2958:6;2940:17;:25::i;:::-;1070:42;-1:-1:-1;;;;;2985:37:17;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2978:4;:46;;-1:-1:-1;;;;;;2978:46:17;-1:-1:-1;;;;;2978:46:17;;;;;;;;;;-1:-1:-1;560:8820:17;;-1:-1:-1;;560:8820:17;2118:244:20;1210:7;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;994:2:32;1376:68:20;;;976:21:32;;;1013:18;;;1006:30;1072:34;1052:18;;;1045:62;1124:18;;1376:68:20;;;;;;;;;-1:-1:-1;;;;;2207:22:20;::::1;2199:73;;;::::0;-1:-1:-1;;;2199:73:20;;1355:2:32;2199:73:20::1;::::0;::::1;1337:21:32::0;1394:2;1374:18;;;1367:30;1433:34;1413:18;;;1406:62;-1:-1:-1;;;1484:18:32;;;1477:36;1530:19;;2199:73:20::1;1153:402:32::0;2199:73:20::1;2309:6;::::0;;2288:38:::1;::::0;-1:-1:-1;;;;;2288:38:20;;::::1;::::0;2309:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2288:38:20;::::1;2337:6;:17:::0;;-1:-1:-1;;;;;;2337:17:20::1;-1:-1:-1::0;;;;;2337:17:20;;;::::1;::::0;;;::::1;::::0;;2118:244::o;14:177:32:-;93:13;;-1:-1:-1;;;;;135:31:32;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:378::-;284:6;292;300;353:2;341:9;332:7;328:23;324:32;321:52;;;369:1;366;359:12;321:52;392:40;422:9;392:40;:::i;:::-;382:50;;451:49;496:2;485:9;481:18;451:49;:::i;:::-;441:59;;519:49;564:2;553:9;549:18;519:49;:::i;:::-;509:59;;196:378;;;;;:::o;579:208::-;649:6;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;741:40;771:9;741:40;:::i;:::-;731:50;579:208;-1:-1:-1;;;579:208:32:o;1153:402::-;560:8820:17;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063838a4107116100c3578063cdb6ee381161007c578063cdb6ee38146102c3578063dd467064146102d6578063ed0ce006146102e9578063f2fde38b146102fc578063f66ed0141461030f578063f851a4401461032257600080fd5b8063838a4107146102435780638da5cb5b1461025657806395e4a6b314610267578063ad5c464814610287578063ba13f4c51461029a578063bf66dc6e146102a357600080fd5b8063676d356311610115578063676d3563146101db57806368a61804146101f6578063715018a6146101fe57806371fc737c14610208578063755965b814610210578063813db8f31461022357600080fd5b80631f72028d146101525780631fc928ae1461017257806322be3de11461019d57806331392fcb146101b057806331e912a8146101c8575b600080fd5b61015a610335565b604051610169939291906111e3565b60405180910390f35b600354610185906001600160a01b031681565b6040516001600160a01b039091168152602001610169565b600454610185906001600160a01b031681565b600b546101ba9081565b604051908152602001610169565b6101ba6101d6366004611337565b610403565b610185737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6006546101ba565b6102066104b2565b005b6101ba61052f565b61020661021e366004611374565b610939565b6101ba610231366004611374565b60096020526000908152604090205481565b61020661025136600461138d565b6109a7565b6000546001600160a01b0316610185565b6101ba61027536600461138d565b600a6020526000908152604090205481565b600754610185906001600160a01b031681565b6101ba60065481565b6101ba6102b1366004611374565b60086020526000908152604090205481565b6102066102d136600461138d565b610add565b6102066102e4366004611374565b610be5565b6101ba6102f73660046113af565b610c7c565b61020661030a36600461138d565b610d37565b61020661031d366004611440565b610e21565b600554610185906001600160a01b031681565b6000606080600b60000154600b600101600b6002018180548060200260200160405190810160405280929190818152602001828054801561039f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610381575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156103f157602002820191906000526020600020905b8154815260200190600101908083116103dd575b50505050509050925092509250909192565b60065460405163d06ca61f60e01b8152600091737a250d5630b4cf539739df2c5dacb4c659f2488d9163d06ca61f916104409186906004016114ba565b600060405180830381865afa15801561045d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261048591908101906114d3565b60018351610493919061157a565b815181106104a3576104a361158d565b60200260200101519050919050565b6000546001600160a01b031633146104e55760405162461bcd60e51b81526004016104dc906115a3565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600654801561093657600060065560075460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d6004820152602481018390526001600160a01b039091169063095ea7b3906044016020604051808303816000875af11580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c691906115d8565b6105d2576105d26115fa565b604080516002808252606082018352600092602083019080368337505060075482519293506001600160a01b0316918391506000906106135761061361158d565b6001600160a01b0392831660209182029290920101526004548251911690829060019081106106445761064461158d565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d6338ed1739836000843061068742617530611610565b6040518663ffffffff1660e01b81526004016106a7959493929190611623565b6000604051808303816000875af11580156106c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106ee91908101906114d3565b50600480546040516370a0823160e01b815230928101929092526000916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561073d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610761919061165f565b905060005b600c548110156109325760006064600b600201838154811061078a5761078a61158d565b9060005260206000200154846107a09190611678565b6107aa919061168f565b600454600c80549293506001600160a01b039091169163a9059cbb9190859081106107d7576107d761158d565b60009182526020909120015460405160e083901b6001600160e01b03191681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610830573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085491906115d8565b610860576108606115fa565b80600a6000600b600101858154811061087b5761087b61158d565b60009182526020808320909101546001600160a01b03168352820192909252604001812080549091906108af908490611610565b9091555050600c8054839081106108c8576108c861158d565b60009182526020918290200154600454604080518581526001600160a01b03928316948101949094529116917f9feb579bbc7ffef3037d91ecb8e45b70c8049afa8741cd4cb398926bd98f6922910160405180910390a2508061092a816116b1565b915050610766565b5050505b90565b6003546001600160a01b0316331461095057600080fd5b80600660008282546109629190611610565b90915550506006546040805183815260208101929092527fe8f58c2c4663d8d9bab1fcd91c3bef339c90e81754e2d0ec7e888c5c0b56b08d910160405180910390a150565b6000546001600160a01b031633146109d15760405162461bcd60e51b81526004016104dc906115a3565b6007546001600160a01b03908116908216036109ed5760006006555b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5f919061165f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610aaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ace91906115d8565b610ada57610ada6115fa565b50565b6000546001600160a01b03163314610b075760405162461bcd60e51b81526004016104dc906115a3565b6004546001600160a01b0390811690821603610b7c5760405162461bcd60e51b815260206004820152602e60248201527f54726561737572792e736f6c3a3a757064617465537461626c6528292076616c60448201526d1d5948185b1c9958591e481cd95d60921b60648201526084016104dc565b600454604080516001600160a01b03928316815291831660208301527fbe67eb17c76f052c9025267eaab09f6b7c384a42bb6830eb5f36665113cadf70910160405180910390a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c0f5760405162461bcd60e51b81526004016104dc906115a3565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610c3e8142611610565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b60008181526008602052604080822054905163d06ca61f60e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9163d06ca61f91610cc3919087906004016114ba565b600060405180830381865afa158015610ce0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d0891908101906114d3565b60018451610d16919061157a565b81518110610d2657610d2661158d565b602002602001015190505b92915050565b6000546001600160a01b03163314610d615760405162461bcd60e51b81526004016104dc906115a3565b6001600160a01b038116610dc65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104dc565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e4b5760405162461bcd60e51b81526004016104dc906115a3565b848314610ed15760405162461bcd60e51b815260206004820152604860248201527f54726561737572792e736f6c3a3a736574546178446973747269627574696f6e60448201527f28292c2077616c6c6574436f756e74206c656e67746820213d2077616c6c65746064820152670e65cd8cadccee8d60c31b608482015260a4016104dc565b848114610f635760405162461bcd60e51b815260206004820152605460248201527f54726561737572792e736f6c3a3a736574546178446973747269627574696f6e60448201527f28292c2077616c6c6574436f756e74206c656e67746820213d2070657263656e6064820152730e888d2e6e8e4d2c4eae8d2dedc5cd8cadccee8d60631b608482015260a4016104dc565b6000805b86811015610fa757838382818110610f8157610f8161158d565b9050602002013582610f939190611610565b915080610f9f816116b1565b915050610f67565b50806064146110285760405162461bcd60e51b815260206004820152604160248201527f54726561737572792e736f6c3a3a736574546178446973747269627574696f6e60448201527f28292c2073756d50657263656e74446973747269627574696f6e20213d2031306064820152600360fc1b608482015260a4016104dc565b6040518060600160405280878152602001868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250505090825250604080516020868102828101820190935286825292830192909187918791829185019084908082843760009201919091525050509152508051600b90815560208083015180516110c392600c9201906110ea565b50604082015180516110df91600284019160209091019061114f565b505050505050505050565b82805482825590600052602060002090810192821561113f579160200282015b8281111561113f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061110a565b5061114b92915061118a565b5090565b82805482825590600052602060002090810192821561113f579160200282015b8281111561113f57825182559160200191906001019061116f565b5b8082111561114b576000815560010161118b565b600081518084526020808501945080840160005b838110156111d85781516001600160a01b0316875295820195908201906001016111b3565b509495945050505050565b838152600060206060818401526111fd606084018661119f565b838103604085015284518082528286019183019060005b8181101561123057835183529284019291840191600101611214565b509098975050505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561127d5761127d61123e565b604052919050565b600067ffffffffffffffff82111561129f5761129f61123e565b5060051b60200190565b80356001600160a01b03811681146112c057600080fd5b919050565b600082601f8301126112d657600080fd5b813560206112eb6112e683611285565b611254565b82815260059290921b8401810191818101908684111561130a57600080fd5b8286015b8481101561132c5761131f816112a9565b835291830191830161130e565b509695505050505050565b60006020828403121561134957600080fd5b813567ffffffffffffffff81111561136057600080fd5b61136c848285016112c5565b949350505050565b60006020828403121561138657600080fd5b5035919050565b60006020828403121561139f57600080fd5b6113a8826112a9565b9392505050565b600080604083850312156113c257600080fd5b823567ffffffffffffffff8111156113d957600080fd5b6113e5858286016112c5565b95602094909401359450505050565b60008083601f84011261140657600080fd5b50813567ffffffffffffffff81111561141e57600080fd5b6020830191508360208260051b850101111561143957600080fd5b9250929050565b60008060008060006060868803121561145857600080fd5b85359450602086013567ffffffffffffffff8082111561147757600080fd5b61148389838a016113f4565b9096509450604088013591508082111561149c57600080fd5b506114a9888289016113f4565b969995985093965092949392505050565b82815260406020820152600061136c604083018461119f565b600060208083850312156114e657600080fd5b825167ffffffffffffffff8111156114fd57600080fd5b8301601f8101851361150e57600080fd5b805161151c6112e682611285565b81815260059190911b8201830190838101908783111561153b57600080fd5b928401925b8284101561155957835182529284019290840190611540565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d3157610d31611564565b634e487b7160e01b600052603260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156115ea57600080fd5b815180151581146113a857600080fd5b634e487b7160e01b600052600160045260246000fd5b80820180821115610d3157610d31611564565b85815284602082015260a06040820152600061164260a083018661119f565b6001600160a01b0394909416606083015250608001529392505050565b60006020828403121561167157600080fd5b5051919050565b8082028115828204841417610d3157610d31611564565b6000826116ac57634e487b7160e01b600052601260045260246000fd5b500490565b6000600182016116c3576116c3611564565b506001019056fea26469706673582212203c7ec3091ab8ec598f46705ce3a77ab2566c8b685e82486782c553c6d00f7d7564736f6c63430008110033", + "sourceMap": "560:8820:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7311:246;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;756:23;;;;;-1:-1:-1;;;;;756:23:17;;;;;;-1:-1:-1;;;;;1524:32:32;;;1506:51;;1494:2;1479:18;756:23:17;1360:203:32;852:21:17;;;;;-1:-1:-1;;;;;852:21:17;;;1773:34;;;;;;;;;;1714:25:32;;;1702:2;1687:18;1773:34:17;1568:177:32;9129:248:17;;;;;;:::i;:::-;;:::i;1031:81::-;;1070:42;1031:81;;4196:117;4286:19;;4196:117;;1815:148:20;;;:::i;:::-;;5797:1248:17;;;:::i;3967:221::-;;;;;;:::i;:::-;;:::i;1552:50::-;;;;;;:::i;:::-;;;;;;;;;;;;;;7778:218;;;;;;:::i;:::-;;:::i;1164:87:20:-;1210:7;1237:6;-1:-1:-1;;;;;1237:6:20;1164:87;;1683:54:17;;;;;;:::i;:::-;;;;;;;;;;;;;;1121:19;;;;;-1:-1:-1;;;;;1121:19:17;;;984:34;;;;;;1486:54;;;;;;:::i;:::-;;;;;;;;;;;;;;8166:226;;;;;;:::i;:::-;;:::i;2444::20:-;;;;;;:::i;:::-;;:::i;8653:274:17:-;;;;;;:::i;:::-;;:::i;2118:244:20:-;;;;;;:::i;:::-;;:::i;4734:1001:17:-;;;;;;:::i;:::-;;:::i;955:20::-;;;;;-1:-1:-1;;;;;955:20:17;;;7311:246;7360:7;7369:16;7387:13;7435:11;:23;;;7473:11;:19;;7507:11;:31;;7413:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7413:136:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7311:246;;;:::o;9129:248::-;9300:19;;9239:112;;-1:-1:-1;;;9239:112:17;;9212:7;;1070:42;;9239:46;;:112;;9335:5;;9239:112;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9239:112:17;;;;;;;;;;;;:::i;:::-;9367:1;9352:5;:12;:16;;;;:::i;:::-;9239:130;;;;;;;;:::i;:::-;;;;;;;9232:137;;9129:248;;;:::o;1815:148:20:-;1210:7;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;;;;;;;;;1922:1:::1;1906:6:::0;;1885:40:::1;::::0;-1:-1:-1;;;;;1906:6:20;;::::1;::::0;1885:40:::1;::::0;1922:1;;1885:40:::1;1953:1;1936:19:::0;;-1:-1:-1;;;;;;1936:19:20::1;::::0;;1815:148::o;5797:1248:17:-;5905:19;;5949:23;;5945:1054;;6013:1;5991:19;:23;6045:4;;6038:64;;-1:-1:-1;;;6038:64:17;;1070:42;6038:64;;;7724:51:32;7791:18;;;7784:34;;;-1:-1:-1;;;;;6045:4:17;;;;6038:20;;7697:18:32;;6038:64:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6031:72;;;;:::i;:::-;6151:16;;;6165:1;6151:16;;;;;;;;6120:28;;6151:16;;;;;;;;-1:-1:-1;;6201:4:17;;6184:14;;;;-1:-1:-1;;;;;;6201:4:17;;6184:14;;-1:-1:-1;6201:4:17;;6184:14;;;;:::i;:::-;-1:-1:-1;;;;;6184:21:17;;;:14;;;;;;;;;:21;6237:6;;6220:14;;6237:6;;;6220:11;;6237:6;;6220:14;;;;;;:::i;:::-;-1:-1:-1;;;;;6220:23:17;;;:14;;;;;;;;;;;:23;1070:42;6260:57;6336:19;6385:1;6405:11;6443:4;6467:23;:15;6485:5;6467:23;:::i;:::-;6260:245;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6260:245:17;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6550:6:17;;;6543:39;;-1:-1:-1;;;6543:39:17;;6576:4;6543:39;;;1506:51:32;;;;6522:18:17;;-1:-1:-1;;;;;6550:6:17;;;;6543:24;;1479:18:32;;6543:39:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6522:60;;6604:6;6599:389;6620:19;:26;6616:30;;6599:389;;;6672:8;6736:3;6699:11;:31;;6731:1;6699:34;;;;;;;;:::i;:::-;;;;;;;;;6683:13;:50;;;;:::i;:::-;:56;;;;:::i;:::-;6774:6;;6791:19;:22;;6672:67;;-1:-1:-1;;;;;;6774:6:17;;;;6767:23;;6791:19;6811:1;;6791:22;;;;;;:::i;:::-;;;;;;;;;;;6767:52;;;;;;-1:-1:-1;;;;;;6767:52:17;;;-1:-1:-1;;;;;6791:22:17;;;6767:52;;;7724:51:32;7791:18;;;7784:34;;;7697:18;;6767:52:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6760:60;;;;:::i;:::-;6888:3;6841:19;:43;6861:11;:19;;6881:1;6861:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;6861:22:17;6841:43;;;;;;;;;;;;:50;;:43;;6861:22;6841:50;;;;;:::i;:::-;;;;-1:-1:-1;;6936:19:17;:22;;6956:1;;6936:22;;;;;;:::i;:::-;;;;;;;;;;;;6965:6;;6915:57;;;9718:25:32;;;-1:-1:-1;;;;;6965:6:17;;;9759:18:32;;;9752:60;;;;6936:22:17;;;6915:57;;9691:18:32;6915:57:17;;;;;;;-1:-1:-1;6648:3:17;;;;:::i;:::-;;;;6599:389;;;;5974:1025;;5945:1054;5797:1248;:::o;3967:221::-;3198:8;;-1:-1:-1;;;;;3198:8:17;3184:10;:22;3176:31;;;;;;4060:4:::1;4037:19;;:27;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;4104:19:17::1;::::0;4080:44:::1;::::0;;10137:25:32;;;10193:2;10178:18;;10171:34;;;;4080:44:17::1;::::0;10110:18:32;4080:44:17::1;;;;;;;3967:221:::0;:::o;7778:218::-;1210:7:20;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;7860:4:17::1;::::0;-1:-1:-1;;;;;7860:4:17;;::::1;7850:14:::0;;::::1;::::0;7846:48:::1;;7890:1;7868:19;:23:::0;7846:48:::1;7947:39;::::0;-1:-1:-1;;;7947:39:17;;7980:4:::1;7947:39;::::0;::::1;1506:51:32::0;-1:-1:-1;;;;;7911:23:17;::::1;::::0;::::1;::::0;7935:10:::1;::::0;7911:23;;7947:24:::1;::::0;1479:18:32;;7947:39:17::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7911:76;::::0;-1:-1:-1;;;;;;7911:76:17::1;::::0;;;;;;-1:-1:-1;;;;;7742:32:32;;;7911:76:17::1;::::0;::::1;7724:51:32::0;7791:18;;;7784:34;7697:18;;7911:76:17::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7904:84;;;;:::i;:::-;7778:218:::0;:::o;8166:226::-;1210:7:20;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;8254:6:17::1;::::0;-1:-1:-1;;;;;8254:6:17;;::::1;8243:17:::0;;::::1;::::0;8235:76:::1;;;::::0;-1:-1:-1;;;8235:76:17;;10418:2:32;8235:76:17::1;::::0;::::1;10400:21:32::0;10457:2;10437:18;;;10430:30;10496:34;10476:18;;;10469:62;-1:-1:-1;;;10547:18:32;;;10540:44;10601:19;;8235:76:17::1;10216:410:32::0;8235:76:17::1;8341:6;::::0;8327:30:::1;::::0;;-1:-1:-1;;;;;8341:6:17;;::::1;10843:34:32::0;;10913:15;;;10908:2;10893:18;;10886:43;8327:30:17::1;::::0;10778:18:32;8327:30:17::1;;;;;;;8368:6;:16:::0;;-1:-1:-1;;;;;;8368:16:17::1;-1:-1:-1::0;;;;;8368:16:17;;;::::1;::::0;;;::::1;::::0;;8166:226::o;2444::20:-;1210:7;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;2525:6:::1;::::0;;;2508:23;;-1:-1:-1;;;;;;2508:23:20;;::::1;-1:-1:-1::0;;;;;2525:6:20;::::1;2508:23;::::0;;;2542:19:::1;::::0;;2584:22:::1;2602:4:::0;2584:15:::1;:22;:::i;:::-;2572:9;:34:::0;2659:1:::1;2643:6:::0;;2622:40:::1;::::0;-1:-1:-1;;;;;2643:6:20;;::::1;::::0;2622:40:::1;::::0;2659:1;;2622:40:::1;2444:226:::0;:::o;8653:274:17:-;8746:7;8834:35;;;:25;:35;;;;;;;8773:128;;-1:-1:-1;;;8773:128:17;;1070:42;;8773:46;;:128;;8834:35;8885:5;;8773:128;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8773:128:17;;;;;;;;;;;;:::i;:::-;8917:1;8902:5;:12;:16;;;;:::i;:::-;8773:146;;;;;;;;:::i;:::-;;;;;;;8766:153;;8653:274;;;;;:::o;2118:244:20:-;1210:7;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;-1:-1:-1;;;;;2207:22:20;::::1;2199:73;;;::::0;-1:-1:-1;;;2199:73:20;;11142:2:32;2199:73:20::1;::::0;::::1;11124:21:32::0;11181:2;11161:18;;;11154:30;11220:34;11200:18;;;11193:62;-1:-1:-1;;;11271:18:32;;;11264:36;11317:19;;2199:73:20::1;10940:402:32::0;2199:73:20::1;2309:6;::::0;;2288:38:::1;::::0;-1:-1:-1;;;;;2288:38:20;;::::1;::::0;2309:6;::::1;::::0;2288:38:::1;::::0;::::1;2337:6;:17:::0;;-1:-1:-1;;;;;;2337:17:20::1;-1:-1:-1::0;;;;;2337:17:20;;;::::1;::::0;;;::::1;::::0;;2118:244::o;4734:1001:17:-;1210:7:20;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;4951:31:17;;::::1;4943:116;;;::::0;-1:-1:-1;;;4943:116:17;;11549:2:32;4943:116:17::1;::::0;::::1;11531:21:32::0;11588:2;11568:18;;;11561:30;11627:34;11607:18;;;11600:62;11698:34;11678:18;;;11671:62;-1:-1:-1;;;11749:19:32;;;11742:39;11798:19;;4943:116:17::1;11347:476:32::0;4943:116:17::1;5078:43:::0;;::::1;5070:140;;;::::0;-1:-1:-1;;;5070:140:17;;12030:2:32;5070:140:17::1;::::0;::::1;12012:21:32::0;12069:2;12049:18;;;12042:30;12108:34;12088:18;;;12081:62;12179:34;12159:18;;;12152:62;-1:-1:-1;;;12230:19:32;;;12223:51;12291:19;;5070:140:17::1;11828:488:32::0;5070:140:17::1;5275:27;::::0;5313:115:::1;5333:12;5329:1;:16;5313:115;;;5393:20;;5414:1;5393:23;;;;;;;:::i;:::-;;;;;;;5367:49;;;;;:::i;:::-;::::0;-1:-1:-1;5347:3:17;::::1;::::0;::::1;:::i;:::-;;;;5313:115;;;;5446:22;5472:3;5446:29;5438:107;;;::::0;-1:-1:-1;;;5438:107:17;;12523:2:32;5438:107:17::1;::::0;::::1;12505:21:32::0;12562:2;12542:18;;;12535:30;12601:34;12581:18;;;12574:62;12672:34;12652:18;;;12645:62;-1:-1:-1;;;12723:19:32;;;12716:32;12765:19;;5438:107:17::1;12321:469:32::0;5438:107:17::1;5616:111;;;;;;;;5646:12;5616:111;;;;5673:8;;5616:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;5616:111:17;;;-1:-1:-1;5616:111:17::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;::::1;::::0;;;5696:20;;;;;;5616:111;::::1;::::0;5696:20;;5616:111;5696:20;5616:111;::::1;;::::0;::::1;::::0;;;;-1:-1:-1;;;5616:111:17;;-1:-1:-1;5602:125:17;;:11:::1;:125:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;5602:125:17::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;;;;;4734:1001:17:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:461:32;67:3;105:5;99:12;132:6;127:3;120:19;158:4;187:2;182:3;178:12;171:19;;224:2;217:5;213:14;245:1;255:195;269:6;266:1;263:13;255:195;;;334:13;;-1:-1:-1;;;;;330:39:32;318:52;;390:12;;;;425:15;;;;366:1;284:9;255:195;;;-1:-1:-1;466:3:32;;14:461;-1:-1:-1;;;;;14:461:32:o;480:875::-;765:6;754:9;747:25;728:4;791:2;829;824;813:9;809:18;802:30;855:56;907:2;896:9;892:18;884:6;855:56;:::i;:::-;947:22;;;942:2;927:18;;920:50;1019:13;;1041:22;;;1117:15;;;;1079;;;1150:1;1160:169;1174:6;1171:1;1168:13;1160:169;;;1235:13;;1223:26;;1304:15;;;;1269:12;;;;1196:1;1189:9;1160:169;;;-1:-1:-1;1346:3:32;;480:875;-1:-1:-1;;;;;;;;480:875:32:o;1750:127::-;1811:10;1806:3;1802:20;1799:1;1792:31;1842:4;1839:1;1832:15;1866:4;1863:1;1856:15;1882:275;1953:2;1947:9;2018:2;1999:13;;-1:-1:-1;;1995:27:32;1983:40;;2053:18;2038:34;;2074:22;;;2035:62;2032:88;;;2100:18;;:::i;:::-;2136:2;2129:22;1882:275;;-1:-1:-1;1882:275:32:o;2162:183::-;2222:4;2255:18;2247:6;2244:30;2241:56;;;2277:18;;:::i;:::-;-1:-1:-1;2322:1:32;2318:14;2334:4;2314:25;;2162:183::o;2350:173::-;2418:20;;-1:-1:-1;;;;;2467:31:32;;2457:42;;2447:70;;2513:1;2510;2503:12;2447:70;2350:173;;;:::o;2528:668::-;2582:5;2635:3;2628:4;2620:6;2616:17;2612:27;2602:55;;2653:1;2650;2643:12;2602:55;2689:6;2676:20;2715:4;2739:60;2755:43;2795:2;2755:43;:::i;:::-;2739:60;:::i;:::-;2833:15;;;2919:1;2915:10;;;;2903:23;;2899:32;;;2864:12;;;;2943:15;;;2940:35;;;2971:1;2968;2961:12;2940:35;3007:2;2999:6;2995:15;3019:148;3035:6;3030:3;3027:15;3019:148;;;3101:23;3120:3;3101:23;:::i;:::-;3089:36;;3145:12;;;;3052;;3019:148;;;-1:-1:-1;3185:5:32;2528:668;-1:-1:-1;;;;;;2528:668:32:o;3201:348::-;3285:6;3338:2;3326:9;3317:7;3313:23;3309:32;3306:52;;;3354:1;3351;3344:12;3306:52;3394:9;3381:23;3427:18;3419:6;3416:30;3413:50;;;3459:1;3456;3449:12;3413:50;3482:61;3535:7;3526:6;3515:9;3511:22;3482:61;:::i;:::-;3472:71;3201:348;-1:-1:-1;;;;3201:348:32:o;3554:180::-;3613:6;3666:2;3654:9;3645:7;3641:23;3637:32;3634:52;;;3682:1;3679;3672:12;3634:52;-1:-1:-1;3705:23:32;;3554:180;-1:-1:-1;3554:180:32:o;3739:186::-;3798:6;3851:2;3839:9;3830:7;3826:23;3822:32;3819:52;;;3867:1;3864;3857:12;3819:52;3890:29;3909:9;3890:29;:::i;:::-;3880:39;3739:186;-1:-1:-1;;;3739:186:32:o;3930:416::-;4023:6;4031;4084:2;4072:9;4063:7;4059:23;4055:32;4052:52;;;4100:1;4097;4090:12;4052:52;4140:9;4127:23;4173:18;4165:6;4162:30;4159:50;;;4205:1;4202;4195:12;4159:50;4228:61;4281:7;4272:6;4261:9;4257:22;4228:61;:::i;:::-;4218:71;4336:2;4321:18;;;;4308:32;;-1:-1:-1;;;;3930:416:32:o;4351:367::-;4414:8;4424:6;4478:3;4471:4;4463:6;4459:17;4455:27;4445:55;;4496:1;4493;4486:12;4445:55;-1:-1:-1;4519:20:32;;4562:18;4551:30;;4548:50;;;4594:1;4591;4584:12;4548:50;4631:4;4623:6;4619:17;4607:29;;4691:3;4684:4;4674:6;4671:1;4667:14;4659:6;4655:27;4651:38;4648:47;4645:67;;;4708:1;4705;4698:12;4645:67;4351:367;;;;;:::o;4723:841::-;4854:6;4862;4870;4878;4886;4939:2;4927:9;4918:7;4914:23;4910:32;4907:52;;;4955:1;4952;4945:12;4907:52;4991:9;4978:23;4968:33;;5052:2;5041:9;5037:18;5024:32;5075:18;5116:2;5108:6;5105:14;5102:34;;;5132:1;5129;5122:12;5102:34;5171:70;5233:7;5224:6;5213:9;5209:22;5171:70;:::i;:::-;5260:8;;-1:-1:-1;5145:96:32;-1:-1:-1;5348:2:32;5333:18;;5320:32;;-1:-1:-1;5364:16:32;;;5361:36;;;5393:1;5390;5383:12;5361:36;;5432:72;5496:7;5485:8;5474:9;5470:24;5432:72;:::i;:::-;4723:841;;;;-1:-1:-1;4723:841:32;;-1:-1:-1;5523:8:32;;5406:98;4723:841;-1:-1:-1;;;4723:841:32:o;5569:332::-;5776:6;5765:9;5758:25;5819:2;5814;5803:9;5799:18;5792:30;5739:4;5839:56;5891:2;5880:9;5876:18;5868:6;5839:56;:::i;5906:881::-;6001:6;6032:2;6075;6063:9;6054:7;6050:23;6046:32;6043:52;;;6091:1;6088;6081:12;6043:52;6124:9;6118:16;6157:18;6149:6;6146:30;6143:50;;;6189:1;6186;6179:12;6143:50;6212:22;;6265:4;6257:13;;6253:27;-1:-1:-1;6243:55:32;;6294:1;6291;6284:12;6243:55;6323:2;6317:9;6346:60;6362:43;6402:2;6362:43;:::i;6346:60::-;6440:15;;;6522:1;6518:10;;;;6510:19;;6506:28;;;6471:12;;;;6546:19;;;6543:39;;;6578:1;6575;6568:12;6543:39;6602:11;;;;6622:135;6638:6;6633:3;6630:15;6622:135;;;6704:10;;6692:23;;6655:12;;;;6735;;;;6622:135;;;6776:5;5906:881;-1:-1:-1;;;;;;;5906:881:32:o;6792:127::-;6853:10;6848:3;6844:20;6841:1;6834:31;6884:4;6881:1;6874:15;6908:4;6905:1;6898:15;6924:128;6991:9;;;7012:11;;;7009:37;;;7026:18;;:::i;7057:127::-;7118:10;7113:3;7109:20;7106:1;7099:31;7149:4;7146:1;7139:15;7173:4;7170:1;7163:15;7189:356;7391:2;7373:21;;;7410:18;;;7403:30;7469:34;7464:2;7449:18;;7442:62;7536:2;7521:18;;7189:356::o;7829:277::-;7896:6;7949:2;7937:9;7928:7;7924:23;7920:32;7917:52;;;7965:1;7962;7955:12;7917:52;7997:9;7991:16;8050:5;8043:13;8036:21;8029:5;8026:32;8016:60;;8072:1;8069;8062:12;8111:127;8172:10;8167:3;8163:20;8160:1;8153:31;8203:4;8200:1;8193:15;8227:4;8224:1;8217:15;8243:125;8308:9;;;8329:10;;;8326:36;;;8342:18;;:::i;8373:582::-;8672:6;8661:9;8654:25;8715:6;8710:2;8699:9;8695:18;8688:34;8758:3;8753:2;8742:9;8738:18;8731:31;8635:4;8779:57;8831:3;8820:9;8816:19;8808:6;8779:57;:::i;:::-;-1:-1:-1;;;;;8872:32:32;;;;8867:2;8852:18;;8845:60;-1:-1:-1;8936:3:32;8921:19;8914:35;8771:65;8373:582;-1:-1:-1;;;8373:582:32:o;8960:184::-;9030:6;9083:2;9071:9;9062:7;9058:23;9054:32;9051:52;;;9099:1;9096;9089:12;9051:52;-1:-1:-1;9122:16:32;;8960:184;-1:-1:-1;8960:184:32:o;9149:168::-;9222:9;;;9253;;9270:15;;;9264:22;;9250:37;9240:71;;9291:18;;:::i;9322:217::-;9362:1;9388;9378:132;;9432:10;9427:3;9423:20;9420:1;9413:31;9467:4;9464:1;9457:15;9495:4;9492:1;9485:15;9378:132;-1:-1:-1;9524:9:32;;9322:217::o;9823:135::-;9862:3;9883:17;;;9880:43;;9903:18;;:::i;:::-;-1:-1:-1;9950:1:32;9939:13;;9823:135::o", + "linkReferences": {} + }, + "methodIdentifiers": { + "UNIV2_ROUTER()": "676d3563", + "WETH()": "ad5c4648", + "WethAccruedForTaxType(uint256)": "813db8f3", + "admin()": "f851a440", + "amountRoyaltiesWeth()": "ba13f4c5", + "distributeTaxes()": "71fc737c", + "distributionsStable(address)": "95e4a6b3", + "exchangeRateForTaxType(address[],uint256)": "ed0ce006", + "exchangeRateForWethToStable(address[])": "31e912a8", + "lock(uint256)": "dd467064", + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "safeWithdraw(address)": "838a4107", + "setTaxDistribution(uint256,address[],uint256[])": "f66ed014", + "stable()": "22be3de1", + "taxSettings()": "31392fcb", + "taxToken()": "1fc928ae", + "taxTokenAccruedForTaxType(uint256)": "bf66dc6e", + "transferOwnership(address)": "f2fde38b", + "updateStable(address)": "cdb6ee38", + "updateTaxesAccrued(uint256)": "755965b8", + "viewTaxSettings()": "1f72028d", + "viewTaxesAccrued()": "68a61804" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_taxToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_stable\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"RoyaltiesDistributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountReceived\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTotal\",\"type\":\"uint256\"}],\"name\":\"RoyaltiesReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currentStable\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newStable\",\"type\":\"address\"}],\"name\":\"StableUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UNIV2_ROUTER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"WethAccruedForTaxType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"amountRoyaltiesWeth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distributeTaxes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountToDistribute\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"distributionsStable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_path\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_taxType\",\"type\":\"uint256\"}],\"name\":\"exchangeRateForTaxType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_path\",\"type\":\"address[]\"}],\"name\":\"exchangeRateForWethToStable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"lock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"safeWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_walletCount\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_wallets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_percentDistribution\",\"type\":\"uint256[]\"}],\"name\":\"setTaxDistribution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stable\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"taxSettings\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"walletCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"taxToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"taxTokenAccruedForTaxType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stable\",\"type\":\"address\"}],\"name\":\"updateStable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amt\",\"type\":\"uint256\"}],\"name\":\"updateTaxesAccrued\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"viewTaxSettings\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"viewTaxesAccrued\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountAccrued\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"RoyaltiesDistributed(address,uint256,address)\":{\"details\":\"Emitted when royalties are distributed via distributeTaxes()\"},\"RoyaltiesReceived(uint256,uint256)\":{\"details\":\"Emitted when the treasury receives royalties\"},\"StableUpdated(address,address)\":{\"details\":\"Emitted when the stable state variable is updated via updateStable()\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_admin\":\"The administrator of the contract.\",\"_taxToken\":\"The taxToken (ERC-20 asset) which accumulates in this Treasury.\"}},\"exchangeRateForTaxType(address[],uint256)\":{\"params\":{\"_path\":\"The path by which taxToken is converted into a given asset (i.e. taxToken => DAI => LINK).\",\"_taxType\":\"The taxType to be exchanged.\"}},\"exchangeRateForWethToStable(address[])\":{\"params\":{\"_path\":\"The path by which taxToken is converted into a given asset (i.e. taxToken => DAI => LINK).\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"safeWithdraw(address)\":{\"details\":\"Reverts if token == taxtoken.Only callable by Admin.\",\"params\":{\"_token\":\"The token to withdraw from the treasury.\"}},\"setTaxDistribution(uint256,address[],uint256[])\":{\"details\":\"Only callable by Admin.\",\"params\":{\"_percentDistribution\":\"The percentage (corresponding with wallets) to distribute taxes to of overall amount owed for taxType.\",\"_walletCount\":\"The number of wallets to distribute across.\",\"_wallets\":\"The address of wallets to distribute fees across.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateStable(address)\":{\"details\":\"Only callable by Admin.\",\"params\":{\"_stable\":\"New stablecoin address.\"}},\"updateTaxesAccrued(uint256)\":{\"details\":\"Only callable by taxToken.\",\"params\":{\"_amt\":\"The amount of taxToken going to taxType.\"}},\"viewTaxSettings()\":{\"returns\":{\"_0\":\"uint256 num of wallets in distribution.\",\"_1\":\"address[] array of wallets in distribution.\",\"_2\":\"uint[] array of distribution, all uints must add up to 100.\"}}},\"stateVariables\":{\"admin\":{\"details\":\"The administrator of accounting and distribution settings.\"},\"distributionsStable\":{\"details\":\"Tracks amount of stablecoin distributed to recipients.\"},\"stable\":{\"details\":\"The stablecoin that is distributed via royalties.\"},\"taxSettings\":{\"details\":\"taxSettings.\"},\"taxToken\":{\"details\":\"The token that fees are taken from, and what is held in escrow here.\"},\"taxTokenAccruedForTaxType\":{\"details\":\"e.g. 10,000 taxToken owed to taxType 0 => taxTokenAccruedForTaxType[0] = 10000 * 10**18. taxType 0 => Xfer Tax taxType 1 => Buy Tax taxType 2 => Sell Tax\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Initializes the Treasury.\"},\"distributeTaxes()\":{\"notice\":\"Distributes taxes for given taxType.\"},\"exchangeRateForTaxType(address[],uint256)\":{\"notice\":\"View function for exchanging fees collected for given taxType.\"},\"exchangeRateForWethToStable(address[])\":{\"notice\":\"View function for exchanging fees collected for given taxType.\"},\"safeWithdraw(address)\":{\"notice\":\"Withdraw a non-taxToken from the treasury.\"},\"setTaxDistribution(uint256,address[],uint256[])\":{\"notice\":\"This function modifies the distribution settings for all taxes.\"},\"taxTokenAccruedForTaxType(uint256)\":{\"notice\":\"Handles the internal accounting for how much taxToken is owed to each taxType.\"},\"updateStable(address)\":{\"notice\":\"Change the stable value of the treasury distriubution.\"},\"updateTaxesAccrued(uint256)\":{\"notice\":\"Increases _amt of taxToken allocated to _taxType.\"},\"viewTaxSettings()\":{\"notice\":\"Helper view function for taxSettings.\"}},\"notice\":\"The treasury is responsible for escrow of TaxToken fee's. The treasury handles accounting, for what's owed to different groups. The treasury handles distribution of TaxToken fees to different groups. The admin can modify how TaxToken fees are distributed (the TaxDistribution struct).\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Treasury.sol\":\"Treasury\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/Treasury.sol\":{\"keccak256\":\"0x27460b541b6369e633da21ef4570c204040a4cc0d40e95e78c269848f89b733b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e77dd6b109beb9728caf6156ea891e7e02d3167287658260bc3fef57b25699a\",\"dweb:/ipfs/QmaZRGiSa4S83tHN9HKDZe1DpgLEyAYZYdU9X3tpGPwCQT\"]},\"src/extensions/Context.sol\":{\"keccak256\":\"0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12\",\"dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV\"]},\"src/extensions/Ownable.sol\":{\"keccak256\":\"0xbe3f4ae2a873ee339e0ac54107262ee789604570a463549fd43364289769207f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca9dde5e484d808440ff8ac43892b8f59a2b76d5084efce1dfa904d800c0f9c6\",\"dweb:/ipfs/QmRnQ2x3a9GwVKf7wbRhNY1MwdxyoTkvDtLFqjXxhEoALA\"]},\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be\",\"dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA\"]},\"src/interfaces/IUniswapV2Router.sol\":{\"keccak256\":\"0xd6f5421763c422b31d0d448ddb3406628b7119a0230d05c82ac932816374f4e4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0413b1f197957edd78b044d2342ef527c18f768d678967a085a4820b4b6e1cee\",\"dweb:/ipfs/QmTekfGmFArRoMM2HQ5hrqxqsDMfahfVa7tc7ddYk7EsD5\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_admin", + "type": "address" + }, + { + "internalType": "address", + "name": "_taxToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_stable", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "previousOwner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "newOwner", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "OwnershipTransferred", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + }, + { + "internalType": "address", + "name": "asset", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "RoyaltiesDistributed", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountReceived", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "newTotal", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "RoyaltiesReceived", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "currentStable", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "newStable", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "StableUpdated", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "UNIV2_ROUTER", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "WETH", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "WethAccruedForTaxType", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "amountRoyaltiesWeth", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "distributeTaxes", + "outputs": [ + { + "internalType": "uint256", + "name": "_amountToDistribute", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "distributionsStable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_path", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "_taxType", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "exchangeRateForTaxType", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_path", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function", + "name": "exchangeRateForWethToStable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "lock" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "renounceOwnership" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "safeWithdraw" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_walletCount", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "_wallets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "_percentDistribution", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setTaxDistribution" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "stable", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "taxSettings", + "outputs": [ + { + "internalType": "uint256", + "name": "walletCount", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "taxToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "taxTokenAccruedForTaxType", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferOwnership" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_stable", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "updateStable" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amt", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "updateTaxesAccrued" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "viewTaxSettings", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "viewTaxesAccrued", + "outputs": [ + { + "internalType": "uint256", + "name": "_amountAccrued", + "type": "uint256" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "constructor": { + "params": { + "_admin": "The administrator of the contract.", + "_taxToken": "The taxToken (ERC-20 asset) which accumulates in this Treasury." + } + }, + "exchangeRateForTaxType(address[],uint256)": { + "params": { + "_path": "The path by which taxToken is converted into a given asset (i.e. taxToken => DAI => LINK).", + "_taxType": "The taxType to be exchanged." + } + }, + "exchangeRateForWethToStable(address[])": { + "params": { + "_path": "The path by which taxToken is converted into a given asset (i.e. taxToken => DAI => LINK)." + } + }, + "owner()": { + "details": "Returns the address of the current owner." + }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." + }, + "safeWithdraw(address)": { + "details": "Reverts if token == taxtoken.Only callable by Admin.", + "params": { + "_token": "The token to withdraw from the treasury." + } + }, + "setTaxDistribution(uint256,address[],uint256[])": { + "details": "Only callable by Admin.", + "params": { + "_percentDistribution": "The percentage (corresponding with wallets) to distribute taxes to of overall amount owed for taxType.", + "_walletCount": "The number of wallets to distribute across.", + "_wallets": "The address of wallets to distribute fees across." + } + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." + }, + "updateStable(address)": { + "details": "Only callable by Admin.", + "params": { + "_stable": "New stablecoin address." + } + }, + "updateTaxesAccrued(uint256)": { + "details": "Only callable by taxToken.", + "params": { + "_amt": "The amount of taxToken going to taxType." + } + }, + "viewTaxSettings()": { + "returns": { + "_0": "uint256 num of wallets in distribution.", + "_1": "address[] array of wallets in distribution.", + "_2": "uint[] array of distribution, all uints must add up to 100." + } + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "constructor": { + "notice": "Initializes the Treasury." + }, + "distributeTaxes()": { + "notice": "Distributes taxes for given taxType." + }, + "exchangeRateForTaxType(address[],uint256)": { + "notice": "View function for exchanging fees collected for given taxType." + }, + "exchangeRateForWethToStable(address[])": { + "notice": "View function for exchanging fees collected for given taxType." + }, + "safeWithdraw(address)": { + "notice": "Withdraw a non-taxToken from the treasury." + }, + "setTaxDistribution(uint256,address[],uint256[])": { + "notice": "This function modifies the distribution settings for all taxes." + }, + "taxTokenAccruedForTaxType(uint256)": { + "notice": "Handles the internal accounting for how much taxToken is owed to each taxType." + }, + "updateStable(address)": { + "notice": "Change the stable value of the treasury distriubution." + }, + "updateTaxesAccrued(uint256)": { + "notice": "Increases _amt of taxToken allocated to _taxType." + }, + "viewTaxSettings()": { + "notice": "Helper view function for taxSettings." + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/Treasury.sol": "Treasury" + }, + "libraries": {} + }, + "sources": { + "src/Treasury.sol": { + "keccak256": "0x27460b541b6369e633da21ef4570c204040a4cc0d40e95e78c269848f89b733b", + "urls": [ + "bzz-raw://6e77dd6b109beb9728caf6156ea891e7e02d3167287658260bc3fef57b25699a", + "dweb:/ipfs/QmaZRGiSa4S83tHN9HKDZe1DpgLEyAYZYdU9X3tpGPwCQT" + ], + "license": "MIT" + }, + "src/extensions/Context.sol": { + "keccak256": "0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016", + "urls": [ + "bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12", + "dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV" + ], + "license": "MIT" + }, + "src/extensions/Ownable.sol": { + "keccak256": "0xbe3f4ae2a873ee339e0ac54107262ee789604570a463549fd43364289769207f", + "urls": [ + "bzz-raw://ca9dde5e484d808440ff8ac43892b8f59a2b76d5084efce1dfa904d800c0f9c6", + "dweb:/ipfs/QmRnQ2x3a9GwVKf7wbRhNY1MwdxyoTkvDtLFqjXxhEoALA" + ], + "license": "MIT" + }, + "src/interfaces/IERC20.sol": { + "keccak256": "0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f", + "urls": [ + "bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be", + "dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA" + ], + "license": "GPL-3.0-or-later" + }, + "src/interfaces/IUniswapV2Router.sol": { + "keccak256": "0xd6f5421763c422b31d0d448ddb3406628b7119a0230d05c82ac932816374f4e4", + "urls": [ + "bzz-raw://0413b1f197957edd78b044d2342ef527c18f768d678967a085a4820b4b6e1cee", + "dweb:/ipfs/QmTekfGmFArRoMM2HQ5hrqxqsDMfahfVa7tc7ddYk7EsD5" + ], + "license": "GPL-3.0-or-later" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/Treasury.sol", + "id": 27496, + "exportedSymbols": { + "Context": [ + 28122 + ], + "IERC20": [ + 29158 + ], + "IUniswapV2Router02": [ + 29864 + ], + "Ownable": [ + 28270 + ], + "Treasury": [ + 27495 + ] + }, + "nodeType": "SourceUnit", + "src": "32:9348:17", + "nodes": [ + { + "id": 27008, + "nodeType": "PragmaDirective", + "src": "32:23:17", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".6" + ] + }, + { + "id": 27010, + "nodeType": "ImportDirective", + "src": "59:49:17", + "nodes": [], + "absolutePath": "src/interfaces/IERC20.sol", + "file": "./interfaces/IERC20.sol", + "nameLocation": "-1:-1:-1", + "scope": 27496, + "sourceUnit": 29167, + "symbolAliases": [ + { + "foreign": { + "id": 27009, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29158, + "src": "68:6:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 27012, + "nodeType": "ImportDirective", + "src": "110:71:17", + "nodes": [], + "absolutePath": "src/interfaces/IUniswapV2Router.sol", + "file": "./interfaces/IUniswapV2Router.sol", + "nameLocation": "-1:-1:-1", + "scope": 27496, + "sourceUnit": 29865, + "symbolAliases": [ + { + "foreign": { + "id": 27011, + "name": "IUniswapV2Router02", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29864, + "src": "119:18:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 27013, + "nodeType": "ImportDirective", + "src": "183:34:17", + "nodes": [], + "absolutePath": "src/extensions/Ownable.sol", + "file": "./extensions/Ownable.sol", + "nameLocation": "-1:-1:-1", + "scope": 27496, + "sourceUnit": 28271, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 27495, + "nodeType": "ContractDefinition", + "src": "560:8820:17", + "nodes": [ + { + "id": 27019, + "nodeType": "VariableDeclaration", + "src": "756:23:17", + "nodes": [], + "constant": false, + "documentation": { + "id": 27017, + "nodeType": "StructuredDocumentation", + "src": "673:77:17", + "text": "@dev The token that fees are taken from, and what is held in escrow here." + }, + "functionSelector": "1fc928ae", + "mutability": "mutable", + "name": "taxToken", + "nameLocation": "771:8:17", + "scope": 27495, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27018, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "756:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 27022, + "nodeType": "VariableDeclaration", + "src": "852:21:17", + "nodes": [], + "constant": false, + "documentation": { + "id": 27020, + "nodeType": "StructuredDocumentation", + "src": "788:58:17", + "text": "@dev The stablecoin that is distributed via royalties." + }, + "functionSelector": "22be3de1", + "mutability": "mutable", + "name": "stable", + "nameLocation": "867:6:17", + "scope": 27495, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "852:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 27025, + "nodeType": "VariableDeclaration", + "src": "955:20:17", + "nodes": [], + "constant": false, + "documentation": { + "id": 27023, + "nodeType": "StructuredDocumentation", + "src": "882:67:17", + "text": "@dev The administrator of accounting and distribution settings." + }, + "functionSelector": "f851a440", + "mutability": "mutable", + "name": "admin", + "nameLocation": "970:5:17", + "scope": 27495, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27024, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "955:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 27027, + "nodeType": "VariableDeclaration", + "src": "984:34:17", + "nodes": [], + "constant": false, + "functionSelector": "ba13f4c5", + "mutability": "mutable", + "name": "amountRoyaltiesWeth", + "nameLocation": "999:19:17", + "scope": 27495, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27026, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "984:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 27030, + "nodeType": "VariableDeclaration", + "src": "1031:81:17", + "nodes": [], + "constant": true, + "functionSelector": "676d3563", + "mutability": "constant", + "name": "UNIV2_ROUTER", + "nameLocation": "1055:12:17", + "scope": 27495, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1031:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "hexValue": "307837613235306435363330423463463533393733396446324335644163623463363539463234383844", + "id": 27029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1070:42:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D" + }, + "visibility": "public" + }, + { + "id": 27032, + "nodeType": "VariableDeclaration", + "src": "1121:19:17", + "nodes": [], + "constant": false, + "functionSelector": "ad5c4648", + "mutability": "mutable", + "name": "WETH", + "nameLocation": "1136:4:17", + "scope": 27495, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27031, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1121:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "id": 27037, + "nodeType": "VariableDeclaration", + "src": "1486:54:17", + "nodes": [], + "constant": false, + "documentation": { + "id": 27033, + "nodeType": "StructuredDocumentation", + "src": "1168:312:17", + "text": "@notice Handles the internal accounting for how much taxToken is owed to each taxType.\n @dev e.g. 10,000 taxToken owed to taxType 0 => taxTokenAccruedForTaxType[0] = 10000 * 10**18.\n taxType 0 => Xfer Tax\n taxType 1 => Buy Tax\n taxType 2 => Sell Tax" + }, + "functionSelector": "bf66dc6e", + "mutability": "mutable", + "name": "taxTokenAccruedForTaxType", + "nameLocation": "1515:25:17", + "scope": 27495, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 27036, + "keyType": { + "id": 27034, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1494:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1486:21:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 27035, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1502:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "id": 27041, + "nodeType": "VariableDeclaration", + "src": "1552:50:17", + "nodes": [], + "constant": false, + "functionSelector": "813db8f3", + "mutability": "mutable", + "name": "WethAccruedForTaxType", + "nameLocation": "1581:21:17", + "scope": 27495, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 27040, + "keyType": { + "id": 27038, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1560:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1552:21:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 27039, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1568:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "id": 27046, + "nodeType": "VariableDeclaration", + "src": "1683:54:17", + "nodes": [], + "constant": false, + "documentation": { + "id": 27042, + "nodeType": "StructuredDocumentation", + "src": "1614:63:17", + "text": "@dev Tracks amount of stablecoin distributed to recipients." + }, + "functionSelector": "95e4a6b3", + "mutability": "mutable", + "name": "distributionsStable", + "nameLocation": "1718:19:17", + "scope": 27495, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 27045, + "keyType": { + "id": 27043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1691:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1683:27:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 27044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1702:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "id": 27050, + "nodeType": "VariableDeclaration", + "src": "1773:34:17", + "nodes": [], + "constant": false, + "documentation": { + "id": 27047, + "nodeType": "StructuredDocumentation", + "src": "1746:21:17", + "text": "@dev taxSettings." + }, + "functionSelector": "31392fcb", + "mutability": "mutable", + "name": "taxSettings", + "nameLocation": "1796:11:17", + "scope": 27495, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaxDistribution_$27059_storage", + "typeString": "struct Treasury.TaxDistribution" + }, + "typeName": { + "id": 27049, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27048, + "name": "TaxDistribution", + "nameLocations": [ + "1773:15:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27059, + "src": "1773:15:17" + }, + "referencedDeclaration": 27059, + "src": "1773:15:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaxDistribution_$27059_storage_ptr", + "typeString": "struct Treasury.TaxDistribution" + } + }, + "visibility": "public" + }, + { + "id": 27059, + "nodeType": "StructDefinition", + "src": "2410:123:17", + "nodes": [], + "canonicalName": "Treasury.TaxDistribution", + "members": [ + { + "constant": false, + "id": 27052, + "mutability": "mutable", + "name": "walletCount", + "nameLocation": "2449:11:17", + "nodeType": "VariableDeclaration", + "scope": 27059, + "src": "2444:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27051, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2444:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27055, + "mutability": "mutable", + "name": "wallets", + "nameLocation": "2481:7:17", + "nodeType": "VariableDeclaration", + "scope": 27059, + "src": "2471:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 27053, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2471:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27054, + "nodeType": "ArrayTypeName", + "src": "2471:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27058, + "mutability": "mutable", + "name": "percentDistribution", + "nameLocation": "2506:19:17", + "nodeType": "VariableDeclaration", + "scope": 27059, + "src": "2499:26:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 27056, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2499:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27057, + "nodeType": "ArrayTypeName", + "src": "2499:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "name": "TaxDistribution", + "nameLocation": "2417:15:17", + "scope": 27495, + "visibility": "public" + }, + { + "id": 27090, + "nodeType": "FunctionDefinition", + "src": "2805:227:17", + "nodes": [], + "body": { + "id": 27089, + "nodeType": "Block", + "src": "2869:163:17", + "nodes": [], + "statements": [ + { + "expression": { + "id": 27071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27069, + "name": "taxToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27019, + "src": "2880:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 27070, + "name": "_taxToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27064, + "src": "2891:9:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2880:20:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27072, + "nodeType": "ExpressionStatement", + "src": "2880:20:17" + }, + { + "expression": { + "id": 27075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27073, + "name": "stable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27022, + "src": "2911:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 27074, + "name": "_stable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27066, + "src": "2920:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2911:16:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27076, + "nodeType": "ExpressionStatement", + "src": "2911:16:17" + }, + { + "expression": { + "arguments": [ + { + "id": 27078, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27062, + "src": "2958:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27077, + "name": "transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28235, + "src": "2940:17:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 27079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2940:25:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27080, + "nodeType": "ExpressionStatement", + "src": "2940:25:17" + }, + { + "expression": { + "id": 27087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27081, + "name": "WETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27032, + "src": "2978:4:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 27083, + "name": "UNIV2_ROUTER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27030, + "src": "3004:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27082, + "name": "IUniswapV2Router02", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29864, + "src": "2985:18:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Router02_$29864_$", + "typeString": "type(contract IUniswapV2Router02)" + } + }, + "id": 27084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2985:32:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$29864", + "typeString": "contract IUniswapV2Router02" + } + }, + "id": 27085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3018:4:17", + "memberName": "WETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 29483, + "src": "2985:37:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_address_$", + "typeString": "function () pure external returns (address)" + } + }, + "id": 27086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2985:39:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2978:46:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27088, + "nodeType": "ExpressionStatement", + "src": "2978:46:17" + } + ] + }, + "documentation": { + "id": 27060, + "nodeType": "StructuredDocumentation", + "src": "2605:194:17", + "text": "@notice Initializes the Treasury.\n @param _admin The administrator of the contract.\n @param _taxToken The taxToken (ERC-20 asset) which accumulates in this Treasury." + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 27067, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27062, + "mutability": "mutable", + "name": "_admin", + "nameLocation": "2825:6:17", + "nodeType": "VariableDeclaration", + "scope": 27090, + "src": "2817:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27061, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2817:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27064, + "mutability": "mutable", + "name": "_taxToken", + "nameLocation": "2841:9:17", + "nodeType": "VariableDeclaration", + "scope": 27090, + "src": "2833:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27063, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2833:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27066, + "mutability": "mutable", + "name": "_stable", + "nameLocation": "2860:7:17", + "nodeType": "VariableDeclaration", + "scope": 27090, + "src": "2852:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27065, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2852:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2816:52:17" + }, + "returnParameters": { + "id": 27068, + "nodeType": "ParameterList", + "parameters": [], + "src": "2869:0:17" + }, + "scope": 27495, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 27102, + "nodeType": "ModifierDefinition", + "src": "3145:82:17", + "nodes": [], + "body": { + "id": 27101, + "nodeType": "Block", + "src": "3165:62:17", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 27097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 27094, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3184:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3188:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3184:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 27096, + "name": "taxToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27019, + "src": "3198:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3184:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 27093, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3176:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 27098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3176:31:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27099, + "nodeType": "ExpressionStatement", + "src": "3176:31:17" + }, + { + "id": 27100, + "nodeType": "PlaceholderStatement", + "src": "3218:1:17" + } + ] + }, + "documentation": { + "id": 27091, + "nodeType": "StructuredDocumentation", + "src": "3098:41:17", + "text": "@dev Enforces msg.sender is taxToken." + }, + "name": "isTaxToken", + "nameLocation": "3154:10:17", + "parameters": { + "id": 27092, + "nodeType": "ParameterList", + "parameters": [], + "src": "3165:0:17" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 27111, + "nodeType": "EventDefinition", + "src": "3359:82:17", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 27103, + "nodeType": "StructuredDocumentation", + "src": "3284:69:17", + "text": "@dev Emitted when royalties are distributed via distributeTaxes()" + }, + "eventSelector": "9feb579bbc7ffef3037d91ecb8e45b70c8049afa8741cd4cb398926bd98f6922", + "name": "RoyaltiesDistributed", + "nameLocation": "3365:20:17", + "parameters": { + "id": 27110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27105, + "indexed": true, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "3402:9:17", + "nodeType": "VariableDeclaration", + "scope": 27111, + "src": "3386:25:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27104, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3386:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27107, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3418:6:17", + "nodeType": "VariableDeclaration", + "scope": 27111, + "src": "3413:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27106, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3413:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27109, + "indexed": false, + "mutability": "mutable", + "name": "asset", + "nameLocation": "3434:5:17", + "nodeType": "VariableDeclaration", + "scope": 27111, + "src": "3426:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3426:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3385:55:17" + } + }, + { + "id": 27118, + "nodeType": "EventDefinition", + "src": "3532:62:17", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 27112, + "nodeType": "StructuredDocumentation", + "src": "3449:77:17", + "text": "@dev Emitted when the stable state variable is updated via updateStable()" + }, + "eventSelector": "be67eb17c76f052c9025267eaab09f6b7c384a42bb6830eb5f36665113cadf70", + "name": "StableUpdated", + "nameLocation": "3538:13:17", + "parameters": { + "id": 27117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27114, + "indexed": false, + "mutability": "mutable", + "name": "currentStable", + "nameLocation": "3560:13:17", + "nodeType": "VariableDeclaration", + "scope": 27118, + "src": "3552:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3552:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27116, + "indexed": false, + "mutability": "mutable", + "name": "newStable", + "nameLocation": "3583:9:17", + "nodeType": "VariableDeclaration", + "scope": 27118, + "src": "3575:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3575:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3551:42:17" + } + }, + { + "id": 27125, + "nodeType": "EventDefinition", + "src": "3661:66:17", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 27119, + "nodeType": "StructuredDocumentation", + "src": "3602:53:17", + "text": "@dev Emitted when the treasury receives royalties" + }, + "eventSelector": "e8f58c2c4663d8d9bab1fcd91c3bef339c90e81754e2d0ec7e888c5c0b56b08d", + "name": "RoyaltiesReceived", + "nameLocation": "3667:17:17", + "parameters": { + "id": 27124, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27121, + "indexed": false, + "mutability": "mutable", + "name": "amountReceived", + "nameLocation": "3693:14:17", + "nodeType": "VariableDeclaration", + "scope": 27125, + "src": "3685:22:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3685:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27123, + "indexed": false, + "mutability": "mutable", + "name": "newTotal", + "nameLocation": "3717:8:17", + "nodeType": "VariableDeclaration", + "scope": 27125, + "src": "3709:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27122, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3709:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3684:42:17" + } + }, + { + "id": 27143, + "nodeType": "FunctionDefinition", + "src": "3967:221:17", + "nodes": [], + "body": { + "id": 27142, + "nodeType": "Block", + "src": "4026:162:17", + "nodes": [], + "statements": [ + { + "expression": { + "id": 27135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27133, + "name": "amountRoyaltiesWeth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27027, + "src": "4037:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 27134, + "name": "_amt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27128, + "src": "4060:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4037:27:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27136, + "nodeType": "ExpressionStatement", + "src": "4037:27:17" + }, + { + "eventCall": { + "arguments": [ + { + "id": 27138, + "name": "_amt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27128, + "src": "4098:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 27139, + "name": "amountRoyaltiesWeth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27027, + "src": "4104:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 27137, + "name": "RoyaltiesReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27125, + "src": "4080:17:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 27140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4080:44:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27141, + "nodeType": "EmitStatement", + "src": "4075:49:17" + } + ] + }, + "documentation": { + "id": 27126, + "nodeType": "StructuredDocumentation", + "src": "3793:168:17", + "text": "@notice Increases _amt of taxToken allocated to _taxType.\n @dev Only callable by taxToken.\n @param _amt The amount of taxToken going to taxType." + }, + "functionSelector": "755965b8", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 27131, + "kind": "modifierInvocation", + "modifierName": { + "id": 27130, + "name": "isTaxToken", + "nameLocations": [ + "4006:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27102, + "src": "4006:10:17" + }, + "nodeType": "ModifierInvocation", + "src": "4006:10:17" + } + ], + "name": "updateTaxesAccrued", + "nameLocation": "3976:18:17", + "parameters": { + "id": 27129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27128, + "mutability": "mutable", + "name": "_amt", + "nameLocation": "4000:4:17", + "nodeType": "VariableDeclaration", + "scope": 27143, + "src": "3995:9:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27127, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3995:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3994:11:17" + }, + "returnParameters": { + "id": 27132, + "nodeType": "ParameterList", + "parameters": [], + "src": "4026:0:17" + }, + "scope": 27495, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 27151, + "nodeType": "FunctionDefinition", + "src": "4196:117:17", + "nodes": [], + "body": { + "id": 27150, + "nodeType": "Block", + "src": "4268:45:17", + "nodes": [], + "statements": [ + { + "expression": { + "id": 27148, + "name": "amountRoyaltiesWeth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27027, + "src": "4286:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 27147, + "id": 27149, + "nodeType": "Return", + "src": "4279:26:17" + } + ] + }, + "functionSelector": "68a61804", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "viewTaxesAccrued", + "nameLocation": "4205:16:17", + "parameters": { + "id": 27144, + "nodeType": "ParameterList", + "parameters": [], + "src": "4221:2:17" + }, + "returnParameters": { + "id": 27147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27146, + "mutability": "mutable", + "name": "_amountAccrued", + "nameLocation": "4252:14:17", + "nodeType": "VariableDeclaration", + "scope": 27151, + "src": "4247:19:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27145, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4247:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4246:21:17" + }, + "scope": 27495, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 27218, + "nodeType": "FunctionDefinition", + "src": "4734:1001:17", + "nodes": [], + "body": { + "id": 27217, + "nodeType": "Block", + "src": "4867:868:17", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 27166, + "name": "_walletCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27154, + "src": "4951:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 27167, + "name": "_wallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27157, + "src": "4967:8:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 27168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4976:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4967:15:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4951:31:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54726561737572792e736f6c3a3a736574546178446973747269627574696f6e28292c2077616c6c6574436f756e74206c656e67746820213d2077616c6c6574732e6c656e677468", + "id": 27170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4984:74:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_52bd6076206bb3f590d172db15ceaab3de463b6afbdae55c1c74f09951599892", + "typeString": "literal_string \"Treasury.sol::setTaxDistribution(), walletCount length != wallets.length\"" + }, + "value": "Treasury.sol::setTaxDistribution(), walletCount length != wallets.length" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_52bd6076206bb3f590d172db15ceaab3de463b6afbdae55c1c74f09951599892", + "typeString": "literal_string \"Treasury.sol::setTaxDistribution(), walletCount length != wallets.length\"" + } + ], + "id": 27165, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4943:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 27171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4943:116:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27172, + "nodeType": "ExpressionStatement", + "src": "4943:116:17" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 27174, + "name": "_walletCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27154, + "src": "5078:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 27175, + "name": "_percentDistribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27160, + "src": "5094:20:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 27176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5115:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5094:27:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5078:43:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54726561737572792e736f6c3a3a736574546178446973747269627574696f6e28292c2077616c6c6574436f756e74206c656e67746820213d2070657263656e74446973747269627574696f6e2e6c656e677468", + "id": 27178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5123:86:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_460b169a49b91854fc9bf36b397a5ce67bba711a85fa5fc1cf0d6fa38e6483a9", + "typeString": "literal_string \"Treasury.sol::setTaxDistribution(), walletCount length != percentDistribution.length\"" + }, + "value": "Treasury.sol::setTaxDistribution(), walletCount length != percentDistribution.length" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_460b169a49b91854fc9bf36b397a5ce67bba711a85fa5fc1cf0d6fa38e6483a9", + "typeString": "literal_string \"Treasury.sol::setTaxDistribution(), walletCount length != percentDistribution.length\"" + } + ], + "id": 27173, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5070:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 27179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5070:140:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27180, + "nodeType": "ExpressionStatement", + "src": "5070:140:17" + }, + { + "assignments": [ + 27182 + ], + "declarations": [ + { + "constant": false, + "id": 27182, + "mutability": "mutable", + "name": "sumPercentDistribution", + "nameLocation": "5280:22:17", + "nodeType": "VariableDeclaration", + "scope": 27217, + "src": "5275:27:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27181, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5275:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 27183, + "nodeType": "VariableDeclarationStatement", + "src": "5275:27:17" + }, + { + "body": { + "id": 27200, + "nodeType": "Block", + "src": "5352:76:17", + "statements": [ + { + "expression": { + "id": 27198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27194, + "name": "sumPercentDistribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27182, + "src": "5367:22:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "baseExpression": { + "id": 27195, + "name": "_percentDistribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27160, + "src": "5393:20:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 27197, + "indexExpression": { + "id": 27196, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27185, + "src": "5414:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5393:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5367:49:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27199, + "nodeType": "ExpressionStatement", + "src": "5367:49:17" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 27188, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27185, + "src": "5329:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 27189, + "name": "_walletCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27154, + "src": "5333:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5329:16:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 27201, + "initializationExpression": { + "assignments": [ + 27185 + ], + "declarations": [ + { + "constant": false, + "id": 27185, + "mutability": "mutable", + "name": "i", + "nameLocation": "5322:1:17", + "nodeType": "VariableDeclaration", + "scope": 27201, + "src": "5317:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27184, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5317:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 27187, + "initialValue": { + "hexValue": "30", + "id": 27186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5326:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5317:10:17" + }, + "loopExpression": { + "expression": { + "id": 27192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5347:3:17", + "subExpression": { + "id": 27191, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27185, + "src": "5347:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27193, + "nodeType": "ExpressionStatement", + "src": "5347:3:17" + }, + "nodeType": "ForStatement", + "src": "5313:115:17" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 27203, + "name": "sumPercentDistribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27182, + "src": "5446:22:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "313030", + "id": 27204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5472:3:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "5446:29:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54726561737572792e736f6c3a3a736574546178446973747269627574696f6e28292c2073756d50657263656e74446973747269627574696f6e20213d20313030", + "id": 27206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5477:67:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62c400e416758c47cf34fd2c0936ac2a8739da73b1f5ee71cf4de6dd3ac2050d", + "typeString": "literal_string \"Treasury.sol::setTaxDistribution(), sumPercentDistribution != 100\"" + }, + "value": "Treasury.sol::setTaxDistribution(), sumPercentDistribution != 100" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62c400e416758c47cf34fd2c0936ac2a8739da73b1f5ee71cf4de6dd3ac2050d", + "typeString": "literal_string \"Treasury.sol::setTaxDistribution(), sumPercentDistribution != 100\"" + } + ], + "id": 27202, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5438:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 27207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5438:107:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27208, + "nodeType": "ExpressionStatement", + "src": "5438:107:17" + }, + { + "expression": { + "id": 27215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27209, + "name": "taxSettings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27050, + "src": "5602:11:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaxDistribution_$27059_storage", + "typeString": "struct Treasury.TaxDistribution storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 27211, + "name": "_walletCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27154, + "src": "5646:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 27212, + "name": "_wallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27157, + "src": "5673:8:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 27213, + "name": "_percentDistribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27160, + "src": "5696:20:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + ], + "id": 27210, + "name": "TaxDistribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27059, + "src": "5616:15:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_TaxDistribution_$27059_storage_ptr_$", + "typeString": "type(struct Treasury.TaxDistribution storage pointer)" + } + }, + "id": 27214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5616:111:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaxDistribution_$27059_memory_ptr", + "typeString": "struct Treasury.TaxDistribution memory" + } + }, + "src": "5602:125:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaxDistribution_$27059_storage", + "typeString": "struct Treasury.TaxDistribution storage ref" + } + }, + "id": 27216, + "nodeType": "ExpressionStatement", + "src": "5602:125:17" + } + ] + }, + "documentation": { + "id": 27152, + "nodeType": "StructuredDocumentation", + "src": "4321:407:17", + "text": "@notice This function modifies the distribution settings for all taxes.\n @dev Only callable by Admin.\n @param _walletCount The number of wallets to distribute across.\n @param _wallets The address of wallets to distribute fees across.\n @param _percentDistribution The percentage (corresponding with wallets) to distribute taxes to of overall amount owed for taxType." + }, + "functionSelector": "f66ed014", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 27163, + "kind": "modifierInvocation", + "modifierName": { + "id": 27162, + "name": "onlyOwner", + "nameLocations": [ + "4857:9:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "4857:9:17" + }, + "nodeType": "ModifierInvocation", + "src": "4857:9:17" + } + ], + "name": "setTaxDistribution", + "nameLocation": "4743:18:17", + "parameters": { + "id": 27161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27154, + "mutability": "mutable", + "name": "_walletCount", + "nameLocation": "4767:12:17", + "nodeType": "VariableDeclaration", + "scope": 27218, + "src": "4762:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27153, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4762:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27157, + "mutability": "mutable", + "name": "_wallets", + "nameLocation": "4800:8:17", + "nodeType": "VariableDeclaration", + "scope": 27218, + "src": "4781:27:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 27155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4781:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27156, + "nodeType": "ArrayTypeName", + "src": "4781:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27160, + "mutability": "mutable", + "name": "_percentDistribution", + "nameLocation": "4826:20:17", + "nodeType": "VariableDeclaration", + "scope": 27218, + "src": "4810:36:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 27158, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4810:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27159, + "nodeType": "ArrayTypeName", + "src": "4810:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "4761:86:17" + }, + "returnParameters": { + "id": 27164, + "nodeType": "ParameterList", + "parameters": [], + "src": "4867:0:17" + }, + "scope": 27495, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 27361, + "nodeType": "FunctionDefinition", + "src": "5797:1248:17", + "nodes": [], + "body": { + "id": 27360, + "nodeType": "Block", + "src": "5870:1175:17", + "nodes": [], + "statements": [ + { + "expression": { + "id": 27226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27224, + "name": "_amountToDistribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27222, + "src": "5883:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 27225, + "name": "amountRoyaltiesWeth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27027, + "src": "5905:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5883:41:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27227, + "nodeType": "ExpressionStatement", + "src": "5883:41:17" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 27228, + "name": "_amountToDistribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27222, + "src": "5949:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 27229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5971:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5949:23:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 27357, + "nodeType": "IfStatement", + "src": "5945:1054:17", + "trueBody": { + "id": 27356, + "nodeType": "Block", + "src": "5974:1025:17", + "statements": [ + { + "expression": { + "id": 27233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27231, + "name": "amountRoyaltiesWeth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27027, + "src": "5991:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 27232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6013:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5991:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27234, + "nodeType": "ExpressionStatement", + "src": "5991:23:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 27242, + "name": "UNIV2_ROUTER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27030, + "src": "6067:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6059:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 27240, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6059:7:17", + "typeDescriptions": {} + } + }, + "id": 27243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6059:21:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27244, + "name": "_amountToDistribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27222, + "src": "6082:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 27237, + "name": "WETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27032, + "src": "6045:4:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27236, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29158, + "src": "6038:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 27238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6038:12:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29158", + "typeString": "contract IERC20" + } + }, + "id": 27239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6051:7:17", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 29127, + "src": "6038:20:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 27245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6038:64:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 27235, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "6031:6:17", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 27246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6031:72:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27247, + "nodeType": "ExpressionStatement", + "src": "6031:72:17" + }, + { + "assignments": [ + 27252 + ], + "declarations": [ + { + "constant": false, + "id": 27252, + "mutability": "mutable", + "name": "path_uni_v2", + "nameLocation": "6137:11:17", + "nodeType": "VariableDeclaration", + "scope": 27356, + "src": "6120:28:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 27250, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6120:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27251, + "nodeType": "ArrayTypeName", + "src": "6120:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "id": 27258, + "initialValue": { + "arguments": [ + { + "hexValue": "32", + "id": 27256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6165:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + } + ], + "id": 27255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6151:13:17", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 27253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6155:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27254, + "nodeType": "ArrayTypeName", + "src": "6155:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 27257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6151:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6120:47:17" + }, + { + "expression": { + "id": 27263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 27259, + "name": "path_uni_v2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27252, + "src": "6184:11:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 27261, + "indexExpression": { + "hexValue": "30", + "id": 27260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6196:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6184:14:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 27262, + "name": "WETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27032, + "src": "6201:4:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6184:21:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27264, + "nodeType": "ExpressionStatement", + "src": "6184:21:17" + }, + { + "expression": { + "id": 27269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 27265, + "name": "path_uni_v2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27252, + "src": "6220:11:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 27267, + "indexExpression": { + "hexValue": "31", + "id": 27266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6232:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6220:14:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 27268, + "name": "stable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27022, + "src": "6237:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6220:23:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27270, + "nodeType": "ExpressionStatement", + "src": "6220:23:17" + }, + { + "expression": { + "arguments": [ + { + "id": 27275, + "name": "_amountToDistribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27222, + "src": "6336:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 27276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6385:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 27277, + "name": "path_uni_v2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27252, + "src": "6405:11:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "arguments": [ + { + "id": 27280, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6443:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Treasury_$27495", + "typeString": "contract Treasury" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Treasury_$27495", + "typeString": "contract Treasury" + } + ], + "id": 27279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6435:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 27278, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6435:7:17", + "typeDescriptions": {} + } + }, + "id": 27281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6435:13:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 27282, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "6467:5:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 27283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6473:9:17", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "6467:15:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3330303030", + "id": 27284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6485:5:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_30000_by_1", + "typeString": "int_const 30000" + }, + "value": "30000" + }, + "src": "6467:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 27272, + "name": "UNIV2_ROUTER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27030, + "src": "6279:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27271, + "name": "IUniswapV2Router02", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29864, + "src": "6260:18:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Router02_$29864_$", + "typeString": "type(contract IUniswapV2Router02)" + } + }, + "id": 27273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6260:32:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$29864", + "typeString": "contract IUniswapV2Router02" + } + }, + "id": 27274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6293:24:17", + "memberName": "swapExactTokensForTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 29642, + "src": "6260:57:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256,uint256,address[] memory,address,uint256) external returns (uint256[] memory)" + } + }, + "id": 27286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6260:245:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 27287, + "nodeType": "ExpressionStatement", + "src": "6260:245:17" + }, + { + "assignments": [ + 27289 + ], + "declarations": [ + { + "constant": false, + "id": 27289, + "mutability": "mutable", + "name": "balanceStable", + "nameLocation": "6527:13:17", + "nodeType": "VariableDeclaration", + "scope": 27356, + "src": "6522:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27288, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6522:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 27299, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 27296, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6576:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Treasury_$27495", + "typeString": "contract Treasury" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Treasury_$27495", + "typeString": "contract Treasury" + } + ], + "id": 27295, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6568:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 27294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6568:7:17", + "typeDescriptions": {} + } + }, + "id": 27297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6568:13:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 27291, + "name": "stable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27022, + "src": "6550:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27290, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29158, + "src": "6543:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 27292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6543:14:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29158", + "typeString": "contract IERC20" + } + }, + "id": 27293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6558:9:17", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 29097, + "src": "6543:24:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 27298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6543:39:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6522:60:17" + }, + { + "body": { + "id": 27354, + "nodeType": "Block", + "src": "6653:335:17", + "statements": [ + { + "assignments": [ + 27313 + ], + "declarations": [ + { + "constant": false, + "id": 27313, + "mutability": "mutable", + "name": "amt", + "nameLocation": "6677:3:17", + "nodeType": "VariableDeclaration", + "scope": 27354, + "src": "6672:8:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27312, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6672:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 27322, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 27314, + "name": "balanceStable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27289, + "src": "6683:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "baseExpression": { + "expression": { + "id": 27315, + "name": "taxSettings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27050, + "src": "6699:11:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaxDistribution_$27059_storage", + "typeString": "struct Treasury.TaxDistribution storage ref" + } + }, + "id": 27316, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6711:19:17", + "memberName": "percentDistribution", + "nodeType": "MemberAccess", + "referencedDeclaration": 27058, + "src": "6699:31:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 27318, + "indexExpression": { + "id": 27317, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27301, + "src": "6731:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6699:34:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6683:50:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 27320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6736:3:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "6683:56:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6672:67:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "baseExpression": { + "expression": { + "id": 27328, + "name": "taxSettings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27050, + "src": "6791:11:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaxDistribution_$27059_storage", + "typeString": "struct Treasury.TaxDistribution storage ref" + } + }, + "id": 27329, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6803:7:17", + "memberName": "wallets", + "nodeType": "MemberAccess", + "referencedDeclaration": 27055, + "src": "6791:19:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 27331, + "indexExpression": { + "id": 27330, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27301, + "src": "6811:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6791:22:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27332, + "name": "amt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27313, + "src": "6815:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 27325, + "name": "stable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27022, + "src": "6774:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27324, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29158, + "src": "6767:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 27326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6767:14:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29158", + "typeString": "contract IERC20" + } + }, + "id": 27327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6782:8:17", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 29107, + "src": "6767:23:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 27333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6767:52:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 27323, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "6760:6:17", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 27334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6760:60:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27335, + "nodeType": "ExpressionStatement", + "src": "6760:60:17" + }, + { + "expression": { + "id": 27343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 27336, + "name": "distributionsStable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27046, + "src": "6841:19:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 27341, + "indexExpression": { + "baseExpression": { + "expression": { + "id": 27337, + "name": "taxSettings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27050, + "src": "6861:11:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaxDistribution_$27059_storage", + "typeString": "struct Treasury.TaxDistribution storage ref" + } + }, + "id": 27338, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6873:7:17", + "memberName": "wallets", + "nodeType": "MemberAccess", + "referencedDeclaration": 27055, + "src": "6861:19:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 27340, + "indexExpression": { + "id": 27339, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27301, + "src": "6881:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6861:22:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6841:43:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 27342, + "name": "amt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27313, + "src": "6888:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6841:50:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27344, + "nodeType": "ExpressionStatement", + "src": "6841:50:17" + }, + { + "eventCall": { + "arguments": [ + { + "baseExpression": { + "expression": { + "id": 27346, + "name": "taxSettings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27050, + "src": "6936:11:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaxDistribution_$27059_storage", + "typeString": "struct Treasury.TaxDistribution storage ref" + } + }, + "id": 27347, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6948:7:17", + "memberName": "wallets", + "nodeType": "MemberAccess", + "referencedDeclaration": 27055, + "src": "6936:19:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 27349, + "indexExpression": { + "id": 27348, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27301, + "src": "6956:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6936:22:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27350, + "name": "amt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27313, + "src": "6960:3:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 27351, + "name": "stable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27022, + "src": "6965:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27345, + "name": "RoyaltiesDistributed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27111, + "src": "6915:20:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,address)" + } + }, + "id": 27352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6915:57:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27353, + "nodeType": "EmitStatement", + "src": "6910:62:17" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 27304, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27301, + "src": "6616:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "expression": { + "id": 27305, + "name": "taxSettings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27050, + "src": "6620:11:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaxDistribution_$27059_storage", + "typeString": "struct Treasury.TaxDistribution storage ref" + } + }, + "id": 27306, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6632:7:17", + "memberName": "wallets", + "nodeType": "MemberAccess", + "referencedDeclaration": 27055, + "src": "6620:19:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 27307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6640:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6620:26:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6616:30:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 27355, + "initializationExpression": { + "assignments": [ + 27301 + ], + "declarations": [ + { + "constant": false, + "id": 27301, + "mutability": "mutable", + "name": "i", + "nameLocation": "6609:1:17", + "nodeType": "VariableDeclaration", + "scope": 27355, + "src": "6604:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27300, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6604:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 27303, + "initialValue": { + "hexValue": "30", + "id": 27302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6613:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6604:10:17" + }, + "loopExpression": { + "expression": { + "id": 27310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6648:3:17", + "subExpression": { + "id": 27309, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27301, + "src": "6648:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27311, + "nodeType": "ExpressionStatement", + "src": "6648:3:17" + }, + "nodeType": "ForStatement", + "src": "6599:389:17" + } + ] + } + }, + { + "expression": { + "id": 27358, + "name": "_amountToDistribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27222, + "src": "7018:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 27223, + "id": 27359, + "nodeType": "Return", + "src": "7011:26:17" + } + ] + }, + "documentation": { + "id": 27219, + "nodeType": "StructuredDocumentation", + "src": "5743:48:17", + "text": "@notice Distributes taxes for given taxType." + }, + "functionSelector": "71fc737c", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "distributeTaxes", + "nameLocation": "5806:15:17", + "parameters": { + "id": 27220, + "nodeType": "ParameterList", + "parameters": [], + "src": "5821:2:17" + }, + "returnParameters": { + "id": 27223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27222, + "mutability": "mutable", + "name": "_amountToDistribute", + "nameLocation": "5849:19:17", + "nodeType": "VariableDeclaration", + "scope": 27361, + "src": "5841:27:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5841:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5840:29:17" + }, + "scope": 27495, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 27382, + "nodeType": "FunctionDefinition", + "src": "7311:246:17", + "nodes": [], + "body": { + "id": 27381, + "nodeType": "Block", + "src": "7402:155:17", + "nodes": [], + "statements": [ + { + "expression": { + "components": [ + { + "expression": { + "id": 27373, + "name": "taxSettings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27050, + "src": "7435:11:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaxDistribution_$27059_storage", + "typeString": "struct Treasury.TaxDistribution storage ref" + } + }, + "id": 27374, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7447:11:17", + "memberName": "walletCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 27052, + "src": "7435:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 27375, + "name": "taxSettings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27050, + "src": "7473:11:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaxDistribution_$27059_storage", + "typeString": "struct Treasury.TaxDistribution storage ref" + } + }, + "id": 27376, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7485:7:17", + "memberName": "wallets", + "nodeType": "MemberAccess", + "referencedDeclaration": 27055, + "src": "7473:19:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + { + "expression": { + "id": 27377, + "name": "taxSettings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27050, + "src": "7507:11:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaxDistribution_$27059_storage", + "typeString": "struct Treasury.TaxDistribution storage ref" + } + }, + "id": 27378, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7519:19:17", + "memberName": "percentDistribution", + "nodeType": "MemberAccess", + "referencedDeclaration": 27058, + "src": "7507:31:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + } + ], + "id": 27379, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7420:129:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_array$_t_address_$dyn_storage_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "tuple(uint256,address[] storage ref,uint256[] storage ref)" + } + }, + "functionReturnParameters": 27372, + "id": 27380, + "nodeType": "Return", + "src": "7413:136:17" + } + ] + }, + "documentation": { + "id": 27362, + "nodeType": "StructuredDocumentation", + "src": "7053:252:17", + "text": "@notice Helper view function for taxSettings.\n @return uint256 num of wallets in distribution.\n @return address[] array of wallets in distribution.\n @return uint[] array of distribution, all uints must add up to 100." + }, + "functionSelector": "1f72028d", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "viewTaxSettings", + "nameLocation": "7320:15:17", + "parameters": { + "id": 27363, + "nodeType": "ParameterList", + "parameters": [], + "src": "7335:2:17" + }, + "returnParameters": { + "id": 27372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27365, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27382, + "src": "7360:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27364, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7360:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27368, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27382, + "src": "7369:16:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 27366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7369:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27367, + "nodeType": "ArrayTypeName", + "src": "7369:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27371, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27382, + "src": "7387:13:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 27369, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7387:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27370, + "nodeType": "ArrayTypeName", + "src": "7387:6:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "7359:42:17" + }, + "scope": 27495, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 27419, + "nodeType": "FunctionDefinition", + "src": "7778:218:17", + "nodes": [], + "body": { + "id": 27418, + "nodeType": "Block", + "src": "7835:161:17", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 27392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 27390, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27385, + "src": "7850:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 27391, + "name": "WETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27032, + "src": "7860:4:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7850:14:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 27398, + "nodeType": "IfStatement", + "src": "7846:48:17", + "trueBody": { + "id": 27397, + "nodeType": "Block", + "src": "7866:28:17", + "statements": [ + { + "expression": { + "id": 27395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27393, + "name": "amountRoyaltiesWeth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27027, + "src": "7868:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 27394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7890:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7868:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27396, + "nodeType": "ExpressionStatement", + "src": "7868:23:17" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 27404, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7935:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7939:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7935:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 27412, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7980:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Treasury_$27495", + "typeString": "contract Treasury" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Treasury_$27495", + "typeString": "contract Treasury" + } + ], + "id": 27411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7972:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 27410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7972:7:17", + "typeDescriptions": {} + } + }, + "id": 27413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7972:13:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 27407, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27385, + "src": "7954:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27406, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29158, + "src": "7947:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 27408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7947:14:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29158", + "typeString": "contract IERC20" + } + }, + "id": 27409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7962:9:17", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 29097, + "src": "7947:24:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 27414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7947:39:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 27401, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27385, + "src": "7918:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27400, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29158, + "src": "7911:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 27402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7911:14:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29158", + "typeString": "contract IERC20" + } + }, + "id": 27403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7926:8:17", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 29107, + "src": "7911:23:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 27415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7911:76:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 27399, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "7904:6:17", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 27416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7904:84:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27417, + "nodeType": "ExpressionStatement", + "src": "7904:84:17" + } + ] + }, + "documentation": { + "id": 27383, + "nodeType": "StructuredDocumentation", + "src": "7565:207:17", + "text": "@notice Withdraw a non-taxToken from the treasury.\n @dev Reverts if token == taxtoken.\n @dev Only callable by Admin.\n @param _token The token to withdraw from the treasury." + }, + "functionSelector": "838a4107", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 27388, + "kind": "modifierInvocation", + "modifierName": { + "id": 27387, + "name": "onlyOwner", + "nameLocations": [ + "7825:9:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "7825:9:17" + }, + "nodeType": "ModifierInvocation", + "src": "7825:9:17" + } + ], + "name": "safeWithdraw", + "nameLocation": "7787:12:17", + "parameters": { + "id": 27386, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27385, + "mutability": "mutable", + "name": "_token", + "nameLocation": "7808:6:17", + "nodeType": "VariableDeclaration", + "scope": 27419, + "src": "7800:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27384, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7800:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7799:16:17" + }, + "returnParameters": { + "id": 27389, + "nodeType": "ParameterList", + "parameters": [], + "src": "7835:0:17" + }, + "scope": 27495, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 27444, + "nodeType": "FunctionDefinition", + "src": "8166:226:17", + "nodes": [], + "body": { + "id": 27443, + "nodeType": "Block", + "src": "8224:168:17", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 27430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 27428, + "name": "_stable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27422, + "src": "8243:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 27429, + "name": "stable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27022, + "src": "8254:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8243:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54726561737572792e736f6c3a3a757064617465537461626c6528292076616c756520616c726561647920736574", + "id": 27431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8262:48:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_892e4c043f222768e189d03ac82956c372b9f7cd8d25db592af8e0657849bfd7", + "typeString": "literal_string \"Treasury.sol::updateStable() value already set\"" + }, + "value": "Treasury.sol::updateStable() value already set" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_892e4c043f222768e189d03ac82956c372b9f7cd8d25db592af8e0657849bfd7", + "typeString": "literal_string \"Treasury.sol::updateStable() value already set\"" + } + ], + "id": 27427, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8235:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 27432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8235:76:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27433, + "nodeType": "ExpressionStatement", + "src": "8235:76:17" + }, + { + "eventCall": { + "arguments": [ + { + "id": 27435, + "name": "stable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27022, + "src": "8341:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27436, + "name": "_stable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27422, + "src": "8349:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27434, + "name": "StableUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27118, + "src": "8327:13:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 27437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8327:30:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27438, + "nodeType": "EmitStatement", + "src": "8322:35:17" + }, + { + "expression": { + "id": 27441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27439, + "name": "stable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27022, + "src": "8368:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 27440, + "name": "_stable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27422, + "src": "8377:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8368:16:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27442, + "nodeType": "ExpressionStatement", + "src": "8368:16:17" + } + ] + }, + "documentation": { + "id": 27420, + "nodeType": "StructuredDocumentation", + "src": "8004:156:17", + "text": "@notice Change the stable value of the treasury distriubution.\n @dev Only callable by Admin.\n @param _stable New stablecoin address." + }, + "functionSelector": "cdb6ee38", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 27425, + "kind": "modifierInvocation", + "modifierName": { + "id": 27424, + "name": "onlyOwner", + "nameLocations": [ + "8214:9:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28185, + "src": "8214:9:17" + }, + "nodeType": "ModifierInvocation", + "src": "8214:9:17" + } + ], + "name": "updateStable", + "nameLocation": "8175:12:17", + "parameters": { + "id": 27423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27422, + "mutability": "mutable", + "name": "_stable", + "nameLocation": "8196:7:17", + "nodeType": "VariableDeclaration", + "scope": 27444, + "src": "8188:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27421, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8188:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8187:17:17" + }, + "returnParameters": { + "id": 27426, + "nodeType": "ParameterList", + "parameters": [], + "src": "8224:0:17" + }, + "scope": 27495, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 27471, + "nodeType": "FunctionDefinition", + "src": "8653:274:17", + "nodes": [], + "body": { + "id": 27470, + "nodeType": "Block", + "src": "8755:172:17", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "arguments": [ + { + "baseExpression": { + "id": 27459, + "name": "taxTokenAccruedForTaxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27037, + "src": "8834:25:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 27461, + "indexExpression": { + "id": 27460, + "name": "_taxType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27450, + "src": "8860:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8834:35:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 27462, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27448, + "src": "8885:5:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "expression": { + "arguments": [ + { + "id": 27456, + "name": "UNIV2_ROUTER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27030, + "src": "8792:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27455, + "name": "IUniswapV2Router02", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29864, + "src": "8773:18:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Router02_$29864_$", + "typeString": "type(contract IUniswapV2Router02)" + } + }, + "id": 27457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8773:32:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$29864", + "typeString": "contract IUniswapV2Router02" + } + }, + "id": 27458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8806:13:17", + "memberName": "getAmountsOut", + "nodeType": "MemberAccess", + "referencedDeclaration": 29767, + "src": "8773:46:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256,address[] memory) view external returns (uint256[] memory)" + } + }, + "id": 27463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8773:128:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 27468, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 27464, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27448, + "src": "8902:5:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 27465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8908:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "8902:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 27466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8917:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8902:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8773:146:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 27454, + "id": 27469, + "nodeType": "Return", + "src": "8766:153:17" + } + ] + }, + "documentation": { + "id": 27445, + "nodeType": "StructuredDocumentation", + "src": "8404:243:17", + "text": "@notice View function for exchanging fees collected for given taxType.\n @param _path The path by which taxToken is converted into a given asset (i.e. taxToken => DAI => LINK).\n @param _taxType The taxType to be exchanged." + }, + "functionSelector": "ed0ce006", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exchangeRateForTaxType", + "nameLocation": "8662:22:17", + "parameters": { + "id": 27451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27448, + "mutability": "mutable", + "name": "_path", + "nameLocation": "8702:5:17", + "nodeType": "VariableDeclaration", + "scope": 27471, + "src": "8685:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 27446, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8685:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27447, + "nodeType": "ArrayTypeName", + "src": "8685:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27450, + "mutability": "mutable", + "name": "_taxType", + "nameLocation": "8714:8:17", + "nodeType": "VariableDeclaration", + "scope": 27471, + "src": "8709:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27449, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8709:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8684:39:17" + }, + "returnParameters": { + "id": 27454, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27453, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27471, + "src": "8746:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27452, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8746:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8745:9:17" + }, + "scope": 27495, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 27494, + "nodeType": "FunctionDefinition", + "src": "9129:248:17", + "nodes": [], + "body": { + "id": 27493, + "nodeType": "Block", + "src": "9221:156:17", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "arguments": [ + { + "id": 27484, + "name": "amountRoyaltiesWeth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27027, + "src": "9300:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 27485, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27475, + "src": "9335:5:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "expression": { + "arguments": [ + { + "id": 27481, + "name": "UNIV2_ROUTER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27030, + "src": "9258:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27480, + "name": "IUniswapV2Router02", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29864, + "src": "9239:18:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Router02_$29864_$", + "typeString": "type(contract IUniswapV2Router02)" + } + }, + "id": 27482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9239:32:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Router02_$29864", + "typeString": "contract IUniswapV2Router02" + } + }, + "id": 27483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9272:13:17", + "memberName": "getAmountsOut", + "nodeType": "MemberAccess", + "referencedDeclaration": 29767, + "src": "9239:46:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256,address[] memory) view external returns (uint256[] memory)" + } + }, + "id": 27486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9239:112:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 27491, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 27487, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27475, + "src": "9352:5:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 27488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9358:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9352:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 27489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9367:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9352:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9239:130:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 27479, + "id": 27492, + "nodeType": "Return", + "src": "9232:137:17" + } + ] + }, + "documentation": { + "id": 27472, + "nodeType": "StructuredDocumentation", + "src": "8935:188:17", + "text": "@notice View function for exchanging fees collected for given taxType.\n @param _path The path by which taxToken is converted into a given asset (i.e. taxToken => DAI => LINK)." + }, + "functionSelector": "31e912a8", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exchangeRateForWethToStable", + "nameLocation": "9138:27:17", + "parameters": { + "id": 27476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27475, + "mutability": "mutable", + "name": "_path", + "nameLocation": "9183:5:17", + "nodeType": "VariableDeclaration", + "scope": 27494, + "src": "9166:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 27473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9166:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27474, + "nodeType": "ArrayTypeName", + "src": "9166:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "9165:24:17" + }, + "returnParameters": { + "id": 27479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27478, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27494, + "src": "9212:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27477, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9212:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9211:9:17" + }, + "scope": 27495, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 27015, + "name": "Ownable", + "nameLocations": [ + "581:7:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 28270, + "src": "581:7:17" + }, + "id": 27016, + "nodeType": "InheritanceSpecifier", + "src": "581:7:17" + } + ], + "canonicalName": "Treasury", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 27014, + "nodeType": "StructuredDocumentation", + "src": "223:337:17", + "text": "@notice The treasury is responsible for escrow of TaxToken fee's.\n The treasury handles accounting, for what's owed to different groups.\n The treasury handles distribution of TaxToken fees to different groups.\n The admin can modify how TaxToken fees are distributed (the TaxDistribution struct)." + }, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 27495, + 28270, + 28122 + ], + "name": "Treasury", + "nameLocation": "569:8:17", + "scope": 27496, + "usedErrors": [] + } + ], + "license": "MIT" + }, + "id": 17 +} \ No newline at end of file diff --git a/out/Utility.sol/Hevm.json b/out/Utility.sol/Hevm.json index 42ec3b1..b2d2f25 100644 --- a/out/Utility.sol/Hevm.json +++ b/out/Utility.sol/Hevm.json @@ -51,7 +51,7 @@ "store(address,bytes32,bytes32)": "70ca10bb", "warp(uint256)": "e5d6bf02" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"store\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"warp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/Utility.sol\":\"Hevm\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xcf17bed19a42d40b15e584cfc57b1cef2b2b0e55d812f6740afe2c5c4bf801d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78e8f19f8b8b6107a39d892d073cfeb8872cce4d5c8e7957d29941e092e16fea\",\"dweb:/ipfs/QmYQfx7UYDjSx77d8WmbveFkXK6AyrUfYUdxvufGLbVPSm\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xe4913fabc9dbebe2ebb4ba4eaf629380a71b88b255fabc05492990bfa3b185bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1989ae3326aafbbf80f75036869d5ea3c752614dfce7df17ce0912a7a16dbb7\",\"dweb:/ipfs/QmSQju3J4cHLZeVsnWk53it94W2N243mvbyx42hhV5BxED\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"src/interfaces/Interfaces.sol\":{\"keccak256\":\"0x741b318f522ba8451f4a2e40afcf59e995484318fabe7c57adeba3124bbd7e04\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dba0a37a10519080f892d5c8b87a0ec026ef73492195a901e49f74766b5915f7\",\"dweb:/ipfs/QmduauRea8YdqJaMeHiYH2tRtbydoqgVirSaTzbXMoEjYX\"]},\"src/users/Actor.sol\":{\"keccak256\":\"0x4d9d9176a043f8212d9f383afa33565fcc83845346ae77d6b4bd80a5ece31b5e\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://6c9d789e1e106682d4ee38523b8b8af1b02903aba1079e5dc2ec31ecf709f96a\",\"dweb:/ipfs/QmSuGiTD8dPDXBLU4B3EoJK2zyQz3MQ9GKYiWzPyJnasRb\"]},\"test/Utility.sol\":{\"keccak256\":\"0xcea126c8754daffe443e2328ce2424b7b3dcafec7f3bb73c1f85c1502849552f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://386bb899985ba398a7e34cc5a15c99c73c3a55b4d40356aa01f1147a8b377775\",\"dweb:/ipfs/QmSQE7R4iNQhVyNSWj9Gs839udCrTm2EiuvezJLuwS7vds\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"store\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"warp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/Utility.sol\":\"Hevm\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xcf17bed19a42d40b15e584cfc57b1cef2b2b0e55d812f6740afe2c5c4bf801d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78e8f19f8b8b6107a39d892d073cfeb8872cce4d5c8e7957d29941e092e16fea\",\"dweb:/ipfs/QmYQfx7UYDjSx77d8WmbveFkXK6AyrUfYUdxvufGLbVPSm\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xe4913fabc9dbebe2ebb4ba4eaf629380a71b88b255fabc05492990bfa3b185bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1989ae3326aafbbf80f75036869d5ea3c752614dfce7df17ce0912a7a16dbb7\",\"dweb:/ipfs/QmSQju3J4cHLZeVsnWk53it94W2N243mvbyx42hhV5BxED\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be\",\"dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA\"]},\"src/users/Actor.sol\":{\"keccak256\":\"0x6ad8911c2d305f1bac636ad070f00e47cb2912c78883ea24698030b41a39ccd3\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://917f42c979b5f2c9bad3cd2c5d34f8caec92282536e6f938e7e20dd1925c4843\",\"dweb:/ipfs/QmYmTcZ3oEDWPUnCy6BfrpRMMeMyhe7gF423HbNSPatXs5\"]},\"test/Utility.sol\":{\"keccak256\":\"0x99dbec5203c841f8f092ac42644aa9e24eb927767826dcdf06addc5d5cbea135\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ecd75e3b538d0eb4404ee763ae474c9e4e64cf1e0804795a6787cedef3c0eeda\",\"dweb:/ipfs/QmTwdFYFVDgVZpg3ebGcVr9vF5ffvcZtLzsdJnkRChxL7s\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.17+commit.8df45f5f" @@ -235,27 +235,27 @@ ], "license": "MIT" }, - "src/interfaces/Interfaces.sol": { - "keccak256": "0x741b318f522ba8451f4a2e40afcf59e995484318fabe7c57adeba3124bbd7e04", + "src/interfaces/IERC20.sol": { + "keccak256": "0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f", "urls": [ - "bzz-raw://dba0a37a10519080f892d5c8b87a0ec026ef73492195a901e49f74766b5915f7", - "dweb:/ipfs/QmduauRea8YdqJaMeHiYH2tRtbydoqgVirSaTzbXMoEjYX" + "bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be", + "dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA" ], "license": "GPL-3.0-or-later" }, "src/users/Actor.sol": { - "keccak256": "0x4d9d9176a043f8212d9f383afa33565fcc83845346ae77d6b4bd80a5ece31b5e", + "keccak256": "0x6ad8911c2d305f1bac636ad070f00e47cb2912c78883ea24698030b41a39ccd3", "urls": [ - "bzz-raw://6c9d789e1e106682d4ee38523b8b8af1b02903aba1079e5dc2ec31ecf709f96a", - "dweb:/ipfs/QmSuGiTD8dPDXBLU4B3EoJK2zyQz3MQ9GKYiWzPyJnasRb" + "bzz-raw://917f42c979b5f2c9bad3cd2c5d34f8caec92282536e6f938e7e20dd1925c4843", + "dweb:/ipfs/QmYmTcZ3oEDWPUnCy6BfrpRMMeMyhe7gF423HbNSPatXs5" ], "license": "AGPL-3.0-or-later" }, "test/Utility.sol": { - "keccak256": "0xcea126c8754daffe443e2328ce2424b7b3dcafec7f3bb73c1f85c1502849552f", + "keccak256": "0x99dbec5203c841f8f092ac42644aa9e24eb927767826dcdf06addc5d5cbea135", "urls": [ - "bzz-raw://386bb899985ba398a7e34cc5a15c99c73c3a55b4d40356aa01f1147a8b377775", - "dweb:/ipfs/QmSQE7R4iNQhVyNSWj9Gs839udCrTm2EiuvezJLuwS7vds" + "bzz-raw://ecd75e3b538d0eb4404ee763ae474c9e4e64cf1e0804795a6787cedef3c0eeda", + "dweb:/ipfs/QmTwdFYFVDgVZpg3ebGcVr9vF5ffvcZtLzsdJnkRChxL7s" ], "license": "AGPL-3.0-or-later" } @@ -264,19 +264,19 @@ }, "ast": { "absolutePath": "test/Utility.sol", - "id": 27933, + "id": 32081, "exportedSymbols": { "Actor": [ - 27385 + 30379 ], "DSTest": [ 1786 ], "Hevm": [ - 27404 + 31549 ], "IERC20": [ - 26425 + 29158 ], "StdAssertions": [ 2708 @@ -300,10 +300,10 @@ 1843 ], "User": [ - 27412 + 31557 ], "Utility": [ - 27932 + 32080 ], "Vm": [ 9352 @@ -328,12 +328,12 @@ ] }, "nodeType": "SourceUnit", - "src": "47:6209:21", + "src": "47:6283:30", "nodes": [ { - "id": 27387, + "id": 31532, "nodeType": "PragmaDirective", - "src": "47:23:21", + "src": "47:23:30", "nodes": [], "literals": [ "solidity", @@ -343,60 +343,60 @@ ] }, { - "id": 27388, + "id": 31533, "nodeType": "ImportDirective", - "src": "74:32:21", + "src": "74:32:30", "nodes": [], "absolutePath": "src/users/Actor.sol", "file": "../src/users/Actor.sol", "nameLocation": "-1:-1:-1", - "scope": 27933, - "sourceUnit": 27386, + "scope": 32081, + "sourceUnit": 30380, "symbolAliases": [], "unitAlias": "" }, { - "id": 27389, + "id": 31534, "nodeType": "ImportDirective", - "src": "110:39:21", + "src": "110:39:30", "nodes": [], "absolutePath": "lib/forge-std/src/Test.sol", "file": "../lib/forge-std/src/Test.sol", "nameLocation": "-1:-1:-1", - "scope": 27933, + "scope": 32081, "sourceUnit": 8196, "symbolAliases": [], "unitAlias": "" }, { - "id": 27404, + "id": 31549, "nodeType": "ContractDefinition", - "src": "153:112:21", + "src": "153:112:30", "nodes": [ { - "id": 27394, + "id": 31539, "nodeType": "FunctionDefinition", - "src": "175:32:21", + "src": "175:32:30", "nodes": [], "functionSelector": "e5d6bf02", "implemented": false, "kind": "function", "modifiers": [], "name": "warp", - "nameLocation": "184:4:21", + "nameLocation": "184:4:30", "parameters": { - "id": 27392, + "id": 31537, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27391, + "id": 31536, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27394, - "src": "189:7:21", + "scope": 31539, + "src": "189:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -404,10 +404,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27390, + "id": 31535, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "189:7:21", + "src": "189:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -416,43 +416,43 @@ "visibility": "internal" } ], - "src": "188:9:21" + "src": "188:9:30" }, "returnParameters": { - "id": 27393, + "id": 31538, "nodeType": "ParameterList", "parameters": [], - "src": "206:0:21" + "src": "206:0:30" }, - "scope": 27404, + "scope": 31549, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 27403, + "id": 31548, "nodeType": "FunctionDefinition", - "src": "213:49:21", + "src": "213:49:30", "nodes": [], "functionSelector": "70ca10bb", "implemented": false, "kind": "function", "modifiers": [], "name": "store", - "nameLocation": "222:5:21", + "nameLocation": "222:5:30", "parameters": { - "id": 27401, + "id": 31546, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27396, + "id": 31541, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27403, - "src": "228:7:21", + "scope": 31548, + "src": "228:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -460,10 +460,10 @@ "typeString": "address" }, "typeName": { - "id": 27395, + "id": 31540, "name": "address", "nodeType": "ElementaryTypeName", - "src": "228:7:21", + "src": "228:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -474,13 +474,13 @@ }, { "constant": false, - "id": 27398, + "id": 31543, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27403, - "src": "236:7:21", + "scope": 31548, + "src": "236:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -488,10 +488,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 27397, + "id": 31542, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "236:7:21", + "src": "236:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -501,13 +501,13 @@ }, { "constant": false, - "id": 27400, + "id": 31545, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27403, - "src": "244:7:21", + "scope": 31548, + "src": "244:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -515,10 +515,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 27399, + "id": 31544, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "244:7:21", + "src": "244:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -527,15 +527,15 @@ "visibility": "internal" } ], - "src": "227:25:21" + "src": "227:25:30" }, "returnParameters": { - "id": 27402, + "id": 31547, "nodeType": "ParameterList", "parameters": [], - "src": "261:0:21" + "src": "261:0:30" }, - "scope": 27404, + "scope": 31549, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -548,42 +548,42 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 27404 + 31549 ], "name": "Hevm", - "nameLocation": "163:4:21", - "scope": 27933, + "nameLocation": "163:4:30", + "scope": 32081, "usedErrors": [] }, { - "id": 27412, + "id": 31557, "nodeType": "ContractDefinition", - "src": "269:69:21", + "src": "269:69:30", "nodes": [ { - "id": 27411, + "id": 31556, "nodeType": "FunctionDefinition", - "src": "291:44:21", + "src": "291:44:30", "nodes": [], "functionSelector": "095ea7b3", "implemented": false, "kind": "function", "modifiers": [], "name": "approve", - "nameLocation": "300:7:21", + "nameLocation": "300:7:30", "parameters": { - "id": 27409, + "id": 31554, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27406, + "id": 31551, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27411, - "src": "308:7:21", + "scope": 31556, + "src": "308:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -591,10 +591,10 @@ "typeString": "address" }, "typeName": { - "id": 27405, + "id": 31550, "name": "address", "nodeType": "ElementaryTypeName", - "src": "308:7:21", + "src": "308:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -605,13 +605,13 @@ }, { "constant": false, - "id": 27408, + "id": 31553, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27411, - "src": "317:7:21", + "scope": 31556, + "src": "317:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -619,10 +619,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27407, + "id": 31552, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "317:7:21", + "src": "317:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -631,15 +631,15 @@ "visibility": "internal" } ], - "src": "307:18:21" + "src": "307:18:30" }, "returnParameters": { - "id": 27410, + "id": 31555, "nodeType": "ParameterList", "parameters": [], - "src": "334:0:21" + "src": "334:0:30" }, - "scope": 27412, + "scope": 31557, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -652,180 +652,180 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 27412 + 31557 ], "name": "User", - "nameLocation": "279:4:21", - "scope": 27933, + "nameLocation": "279:4:30", + "scope": 32081, "usedErrors": [] }, { - "id": 27932, + "id": 32080, "nodeType": "ContractDefinition", - "src": "449:5807:21", + "src": "449:5881:30", "nodes": [ { - "id": 27417, + "id": 31562, "nodeType": "VariableDeclaration", - "src": "485:9:21", + "src": "485:9:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "hevm", - "nameLocation": "490:4:21", - "scope": 27932, + "nameLocation": "490:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" }, "typeName": { - "id": 27416, + "id": 31561, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27415, + "id": 31560, "name": "Hevm", "nameLocations": [ - "485:4:21" + "485:4:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27404, - "src": "485:4:21" + "referencedDeclaration": 31549, + "src": "485:4:30" }, - "referencedDeclaration": 27404, - "src": "485:4:21", + "referencedDeclaration": 31549, + "src": "485:4:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, "visibility": "internal" }, { - "id": 27420, + "id": 31565, "nodeType": "VariableDeclaration", - "src": "596:10:21", + "src": "596:10:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "joe", - "nameLocation": "603:3:21", - "scope": 27932, + "nameLocation": "603:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" }, "typeName": { - "id": 27419, + "id": 31564, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27418, + "id": 31563, "name": "Actor", "nameLocations": [ - "596:5:21" + "596:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "596:5:21" + "referencedDeclaration": 30379, + "src": "596:5:30" }, - "referencedDeclaration": 27385, - "src": "596:5:21", + "referencedDeclaration": 30379, + "src": "596:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, "visibility": "internal" }, { - "id": 27423, + "id": 31568, "nodeType": "VariableDeclaration", - "src": "625:10:21", + "src": "625:10:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "dev", - "nameLocation": "632:3:21", - "scope": 27932, + "nameLocation": "632:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" }, "typeName": { - "id": 27422, + "id": 31567, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27421, + "id": 31566, "name": "Actor", "nameLocations": [ - "625:5:21" + "625:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "625:5:21" + "referencedDeclaration": 30379, + "src": "625:5:30" }, - "referencedDeclaration": 27385, - "src": "625:5:21", + "referencedDeclaration": 30379, + "src": "625:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, "visibility": "internal" }, { - "id": 27426, + "id": 31571, "nodeType": "VariableDeclaration", - "src": "651:10:21", + "src": "651:10:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "jon", - "nameLocation": "658:3:21", - "scope": 27932, + "nameLocation": "658:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" }, "typeName": { - "id": 27425, + "id": 31570, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27424, + "id": 31569, "name": "Actor", "nameLocations": [ - "651:5:21" + "651:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "651:5:21" + "referencedDeclaration": 30379, + "src": "651:5:30" }, - "referencedDeclaration": 27385, - "src": "651:5:21", + "referencedDeclaration": 30379, + "src": "651:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, "visibility": "internal" }, { - "id": 27429, + "id": 31574, "nodeType": "VariableDeclaration", - "src": "815:67:21", + "src": "815:67:30", "nodes": [], "constant": true, "mutability": "constant", "name": "USDC", - "nameLocation": "832:4:21", - "scope": 27932, + "nameLocation": "832:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -833,10 +833,10 @@ "typeString": "address" }, "typeName": { - "id": 27427, + "id": 31572, "name": "address", "nodeType": "ElementaryTypeName", - "src": "815:7:21", + "src": "815:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -845,14 +845,14 @@ }, "value": { "hexValue": "307841306238363939316336323138623336633164313944346132653945623063453336303665423438", - "id": 27428, + "id": 31573, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "840:42:21", + "src": "840:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -862,15 +862,15 @@ "visibility": "internal" }, { - "id": 27432, + "id": 31577, "nodeType": "VariableDeclaration", - "src": "889:67:21", + "src": "889:67:30", "nodes": [], "constant": true, "mutability": "constant", "name": "DAI", - "nameLocation": "906:3:21", - "scope": 27932, + "nameLocation": "906:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -878,10 +878,10 @@ "typeString": "address" }, "typeName": { - "id": 27430, + "id": 31575, "name": "address", "nodeType": "ElementaryTypeName", - "src": "889:7:21", + "src": "889:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -890,14 +890,14 @@ }, "value": { "hexValue": "307836423137353437344538393039344334344461393862393534456564654143343935323731643046", - "id": 27431, + "id": 31576, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "914:42:21", + "src": "914:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -907,15 +907,15 @@ "visibility": "internal" }, { - "id": 27435, + "id": 31580, "nodeType": "VariableDeclaration", - "src": "963:67:21", + "src": "963:67:30", "nodes": [], "constant": true, "mutability": "constant", "name": "WETH", - "nameLocation": "980:4:21", - "scope": 27932, + "nameLocation": "980:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -923,10 +923,10 @@ "typeString": "address" }, "typeName": { - "id": 27433, + "id": 31578, "name": "address", "nodeType": "ElementaryTypeName", - "src": "963:7:21", + "src": "963:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -935,14 +935,14 @@ }, "value": { "hexValue": "307843303261614133396232323346453844304130653543344632376541443930383343373536436332", - "id": 27434, + "id": 31579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "988:42:21", + "src": "988:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -952,15 +952,15 @@ "visibility": "internal" }, { - "id": 27438, + "id": 31583, "nodeType": "VariableDeclaration", - "src": "1037:67:21", + "src": "1037:67:30", "nodes": [], "constant": true, "mutability": "constant", "name": "WBTC", - "nameLocation": "1054:4:21", - "scope": 27932, + "nameLocation": "1054:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -968,10 +968,10 @@ "typeString": "address" }, "typeName": { - "id": 27436, + "id": 31581, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1037:7:21", + "src": "1037:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -980,14 +980,14 @@ }, "value": { "hexValue": "307832323630464143354535353432613737334161343466424366654466374331393362633243353939", - "id": 27437, + "id": 31582, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1062:42:21", + "src": "1062:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -997,50 +997,95 @@ "visibility": "internal" }, { - "id": 27444, + "id": 31586, "nodeType": "VariableDeclaration", - "src": "1113:35:21", + "src": "1111:67:30", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "FRAX", + "nameLocation": "1128:4:30", + "scope": 32080, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 31584, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1111:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "hexValue": "307838353364393535614345663832324462303538656238353035393131454437374631373562393965", + "id": 31585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1136:42:30", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0x853d955aCEf822Db058eb8505911ED77F175b99e" + }, + "visibility": "internal" + }, + { + "id": 31592, + "nodeType": "VariableDeclaration", + "src": "1187:35:30", "nodes": [], "constant": true, "mutability": "constant", "name": "usdc", - "nameLocation": "1129:4:21", - "scope": 27932, + "nameLocation": "1203:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" }, "typeName": { - "id": 27440, + "id": 31588, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27439, + "id": 31587, "name": "IERC20", "nameLocations": [ - "1113:6:21" + "1187:6:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26425, - "src": "1113:6:21" + "referencedDeclaration": 29158, + "src": "1187:6:30" }, - "referencedDeclaration": 26425, - "src": "1113:6:21", + "referencedDeclaration": 29158, + "src": "1187:6:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "value": { "arguments": [ { - "id": 27442, + "id": 31590, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27429, - "src": "1143:4:21", + "referencedDeclaration": 31574, + "src": "1217:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1054,18 +1099,18 @@ "typeString": "address" } ], - "id": 27441, + "id": 31589, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "1136:6:21", + "referencedDeclaration": 29158, + "src": "1210:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27443, + "id": 31591, "isConstant": false, "isLValue": false, "isPure": true, @@ -1074,60 +1119,60 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1136:12:21", + "src": "1210:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "visibility": "internal" }, { - "id": 27450, + "id": 31598, "nodeType": "VariableDeclaration", - "src": "1155:34:21", + "src": "1229:34:30", "nodes": [], "constant": true, "mutability": "constant", "name": "dai", - "nameLocation": "1171:3:21", - "scope": 27932, + "nameLocation": "1245:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" }, "typeName": { - "id": 27446, + "id": 31594, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27445, + "id": 31593, "name": "IERC20", "nameLocations": [ - "1155:6:21" + "1229:6:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26425, - "src": "1155:6:21" + "referencedDeclaration": 29158, + "src": "1229:6:30" }, - "referencedDeclaration": 26425, - "src": "1155:6:21", + "referencedDeclaration": 29158, + "src": "1229:6:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "value": { "arguments": [ { - "id": 27448, + "id": 31596, "name": "DAI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27432, - "src": "1185:3:21", + "referencedDeclaration": 31577, + "src": "1259:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1141,18 +1186,18 @@ "typeString": "address" } ], - "id": 27447, + "id": 31595, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "1178:6:21", + "referencedDeclaration": 29158, + "src": "1252:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27449, + "id": 31597, "isConstant": false, "isLValue": false, "isPure": true, @@ -1161,60 +1206,60 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1178:11:21", + "src": "1252:11:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "visibility": "internal" }, { - "id": 27456, + "id": 31604, "nodeType": "VariableDeclaration", - "src": "1196:35:21", + "src": "1270:35:30", "nodes": [], "constant": true, "mutability": "constant", "name": "weth", - "nameLocation": "1212:4:21", - "scope": 27932, + "nameLocation": "1286:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" }, "typeName": { - "id": 27452, + "id": 31600, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27451, + "id": 31599, "name": "IERC20", "nameLocations": [ - "1196:6:21" + "1270:6:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26425, - "src": "1196:6:21" + "referencedDeclaration": 29158, + "src": "1270:6:30" }, - "referencedDeclaration": 26425, - "src": "1196:6:21", + "referencedDeclaration": 29158, + "src": "1270:6:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "value": { "arguments": [ { - "id": 27454, + "id": 31602, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27435, - "src": "1226:4:21", + "referencedDeclaration": 31580, + "src": "1300:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1228,18 +1273,18 @@ "typeString": "address" } ], - "id": 27453, + "id": 31601, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "1219:6:21", + "referencedDeclaration": 29158, + "src": "1293:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27455, + "id": 31603, "isConstant": false, "isLValue": false, "isPure": true, @@ -1248,60 +1293,60 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1219:12:21", + "src": "1293:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "visibility": "internal" }, { - "id": 27462, + "id": 31610, "nodeType": "VariableDeclaration", - "src": "1238:35:21", + "src": "1312:35:30", "nodes": [], "constant": true, "mutability": "constant", "name": "wbtc", - "nameLocation": "1254:4:21", - "scope": 27932, + "nameLocation": "1328:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" }, "typeName": { - "id": 27458, + "id": 31606, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27457, + "id": 31605, "name": "IERC20", "nameLocations": [ - "1238:6:21" + "1312:6:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26425, - "src": "1238:6:21" + "referencedDeclaration": 29158, + "src": "1312:6:30" }, - "referencedDeclaration": 26425, - "src": "1238:6:21", + "referencedDeclaration": 29158, + "src": "1312:6:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "value": { "arguments": [ { - "id": 27460, + "id": 31608, "name": "WBTC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27438, - "src": "1268:4:21", + "referencedDeclaration": 31583, + "src": "1342:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1315,18 +1360,18 @@ "typeString": "address" } ], - "id": 27459, + "id": 31607, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "1261:6:21", + "referencedDeclaration": 29158, + "src": "1335:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27461, + "id": 31609, "isConstant": false, "isLValue": false, "isPure": true, @@ -1335,25 +1380,25 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1261:12:21", + "src": "1335:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "visibility": "internal" }, { - "id": 27465, + "id": 31613, "nodeType": "VariableDeclaration", - "src": "1282:82:21", + "src": "1356:82:30", "nodes": [], "constant": true, "mutability": "constant", "name": "UNISWAP_V2_ROUTER_02", - "nameLocation": "1299:20:21", - "scope": 27932, + "nameLocation": "1373:20:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1361,10 +1406,10 @@ "typeString": "address" }, "typeName": { - "id": 27463, + "id": 31611, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1282:7:21", + "src": "1356:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1373,14 +1418,14 @@ }, "value": { "hexValue": "307837613235306435363330423463463533393733396446324335644163623463363539463234383844", - "id": 27464, + "id": 31612, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1322:42:21", + "src": "1396:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1390,15 +1435,15 @@ "visibility": "internal" }, { - "id": 27468, + "id": 31616, "nodeType": "VariableDeclaration", - "src": "1392:82:21", + "src": "1466:82:30", "nodes": [], "constant": true, "mutability": "constant", "name": "UNISWAP_V2_FACTORY", - "nameLocation": "1409:18:21", - "scope": 27932, + "nameLocation": "1483:18:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1406,10 +1451,10 @@ "typeString": "address" }, "typeName": { - "id": 27466, + "id": 31614, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1392:7:21", + "src": "1466:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1418,14 +1463,14 @@ }, "value": { "hexValue": "307835433639624565373031656638313461324236613345444434423136353243423963633561413666", - "id": 27467, + "id": 31615, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1432:42:21", + "src": "1506:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1435,16 +1480,16 @@ "visibility": "internal" }, { - "id": 27471, + "id": 31619, "nodeType": "VariableDeclaration", - "src": "1581:36:21", + "src": "1655:36:30", "nodes": [], "constant": true, "functionSelector": "e70dd6cf", "mutability": "constant", "name": "CL_FACTORY", - "nameLocation": "1603:10:21", - "scope": 27932, + "nameLocation": "1677:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1452,10 +1497,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27469, + "id": 31617, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1581:5:21", + "src": "1655:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1463,14 +1508,14 @@ }, "value": { "hexValue": "30", - "id": 27470, + "id": 31618, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1616:1:21", + "src": "1690:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1480,16 +1525,16 @@ "visibility": "public" }, { - "id": 27474, + "id": 31622, "nodeType": "VariableDeclaration", - "src": "1671:36:21", + "src": "1745:36:30", "nodes": [], "constant": true, "functionSelector": "174a5be4", "mutability": "constant", "name": "DL_FACTORY", - "nameLocation": "1693:10:21", - "scope": 27932, + "nameLocation": "1767:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1497,10 +1542,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27472, + "id": 31620, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1671:5:21", + "src": "1745:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1508,14 +1553,14 @@ }, "value": { "hexValue": "31", - "id": 27473, + "id": 31621, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1706:1:21", + "src": "1780:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -1525,16 +1570,16 @@ "visibility": "public" }, { - "id": 27477, + "id": 31625, "nodeType": "VariableDeclaration", - "src": "1755:36:21", + "src": "1829:36:30", "nodes": [], "constant": true, "functionSelector": "38505fb0", "mutability": "constant", "name": "FL_FACTORY", - "nameLocation": "1777:10:21", - "scope": 27932, + "nameLocation": "1851:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1542,10 +1587,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27475, + "id": 31623, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1755:5:21", + "src": "1829:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1553,14 +1598,14 @@ }, "value": { "hexValue": "32", - "id": 27476, + "id": 31624, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1790:1:21", + "src": "1864:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -1570,16 +1615,16 @@ "visibility": "public" }, { - "id": 27480, + "id": 31628, "nodeType": "VariableDeclaration", - "src": "1842:36:21", + "src": "1916:36:30", "nodes": [], "constant": true, "functionSelector": "c5ba73ed", "mutability": "constant", "name": "LL_FACTORY", - "nameLocation": "1864:10:21", - "scope": 27932, + "nameLocation": "1938:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1587,10 +1632,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27478, + "id": 31626, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1842:5:21", + "src": "1916:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1598,14 +1643,14 @@ }, "value": { "hexValue": "33", - "id": 27479, + "id": 31627, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1877:1:21", + "src": "1951:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" @@ -1615,16 +1660,16 @@ "visibility": "public" }, { - "id": 27483, + "id": 31631, "nodeType": "VariableDeclaration", - "src": "1931:36:21", + "src": "2005:36:30", "nodes": [], "constant": true, "functionSelector": "9f71f14a", "mutability": "constant", "name": "SL_FACTORY", - "nameLocation": "1953:10:21", - "scope": 27932, + "nameLocation": "2027:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1632,10 +1677,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27481, + "id": 31629, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1931:5:21", + "src": "2005:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1643,14 +1688,14 @@ }, "value": { "hexValue": "34", - "id": 27482, + "id": 31630, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1966:1:21", + "src": "2040:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" @@ -1660,16 +1705,16 @@ "visibility": "public" }, { - "id": 27486, + "id": 31634, "nodeType": "VariableDeclaration", - "src": "2018:45:21", + "src": "2092:45:30", "nodes": [], "constant": true, "functionSelector": "8c38922f", "mutability": "constant", "name": "INTEREST_CALC_TYPE", - "nameLocation": "2040:18:21", - "scope": 27932, + "nameLocation": "2114:18:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1677,10 +1722,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27484, + "id": 31632, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2018:5:21", + "src": "2092:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1688,14 +1733,14 @@ }, "value": { "hexValue": "3130", - "id": 27485, + "id": 31633, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2061:2:21", + "src": "2135:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -1705,16 +1750,16 @@ "visibility": "public" }, { - "id": 27489, + "id": 31637, "nodeType": "VariableDeclaration", - "src": "2104:45:21", + "src": "2178:45:30", "nodes": [], "constant": true, "functionSelector": "3493f4ca", "mutability": "constant", "name": "LATEFEE_CALC_TYPE", - "nameLocation": "2126:17:21", - "scope": 27932, + "nameLocation": "2200:17:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1722,10 +1767,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27487, + "id": 31635, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2104:5:21", + "src": "2178:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1733,14 +1778,14 @@ }, "value": { "hexValue": "3131", - "id": 27488, + "id": 31636, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2147:2:21", + "src": "2221:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_11_by_1", "typeString": "int_const 11" @@ -1750,16 +1795,16 @@ "visibility": "public" }, { - "id": 27492, + "id": 31640, "nodeType": "VariableDeclaration", - "src": "2188:45:21", + "src": "2262:45:30", "nodes": [], "constant": true, "functionSelector": "7a8fe3c0", "mutability": "constant", "name": "PREMIUM_CALC_TYPE", - "nameLocation": "2210:17:21", - "scope": 27932, + "nameLocation": "2284:17:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1767,10 +1812,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27490, + "id": 31638, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2188:5:21", + "src": "2262:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1778,14 +1823,14 @@ }, "value": { "hexValue": "3132", - "id": 27491, + "id": 31639, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2231:2:21", + "src": "2305:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", "typeString": "int_const 12" @@ -1795,15 +1840,15 @@ "visibility": "public" }, { - "id": 27497, + "id": 31645, "nodeType": "VariableDeclaration", - "src": "2274:30:21", + "src": "2348:30:30", "nodes": [], "constant": true, "mutability": "constant", "name": "USD", - "nameLocation": "2291:3:21", - "scope": 27932, + "nameLocation": "2365:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1811,10 +1856,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27493, + "id": 31641, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2274:7:21", + "src": "2348:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1825,21 +1870,21 @@ "typeIdentifier": "t_rational_1000000_by_1", "typeString": "int_const 1000000" }, - "id": 27496, + "id": 31644, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27494, + "id": 31642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2297:2:21", + "src": "2371:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -1850,21 +1895,21 @@ "operator": "**", "rightExpression": { "hexValue": "36", - "id": 27495, + "id": 31643, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2303:1:21", + "src": "2377:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", "typeString": "int_const 6" }, "value": "6" }, - "src": "2297:7:21", + "src": "2371:7:30", "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", "typeString": "int_const 1000000" @@ -1873,15 +1918,15 @@ "visibility": "internal" }, { - "id": 27502, + "id": 31650, "nodeType": "VariableDeclaration", - "src": "2339:30:21", + "src": "2413:30:30", "nodes": [], "constant": true, "mutability": "constant", "name": "BTC", - "nameLocation": "2356:3:21", - "scope": 27932, + "nameLocation": "2430:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1889,10 +1934,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27498, + "id": 31646, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2339:7:21", + "src": "2413:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1903,21 +1948,21 @@ "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" }, - "id": 27501, + "id": 31649, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27499, + "id": 31647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2362:2:21", + "src": "2436:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -1928,21 +1973,21 @@ "operator": "**", "rightExpression": { "hexValue": "38", - "id": 27500, + "id": 31648, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2368:1:21", + "src": "2442:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "2362:7:21", + "src": "2436:7:30", "typeDescriptions": { "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" @@ -1951,15 +1996,15 @@ "visibility": "internal" }, { - "id": 27507, + "id": 31655, "nodeType": "VariableDeclaration", - "src": "2404:31:21", + "src": "2478:31:30", "nodes": [], "constant": true, "mutability": "constant", "name": "WAD", - "nameLocation": "2421:3:21", - "scope": 27932, + "nameLocation": "2495:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1967,10 +2012,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27503, + "id": 31651, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2404:7:21", + "src": "2478:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1981,21 +2026,21 @@ "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" }, - "id": 27506, + "id": 31654, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27504, + "id": 31652, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2427:2:21", + "src": "2501:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -2006,21 +2051,21 @@ "operator": "**", "rightExpression": { "hexValue": "3138", - "id": 27505, + "id": 31653, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2433:2:21", + "src": "2507:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, - "src": "2427:8:21", + "src": "2501:8:30", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" @@ -2029,15 +2074,15 @@ "visibility": "internal" }, { - "id": 27512, + "id": 31660, "nodeType": "VariableDeclaration", - "src": "2442:31:21", + "src": "2516:31:30", "nodes": [], "constant": true, "mutability": "constant", "name": "RAY", - "nameLocation": "2459:3:21", - "scope": 27932, + "nameLocation": "2533:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2045,10 +2090,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27508, + "id": 31656, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2442:7:21", + "src": "2516:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2059,21 +2104,21 @@ "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" }, - "id": 27511, + "id": 31659, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27509, + "id": 31657, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2465:2:21", + "src": "2539:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -2084,21 +2129,21 @@ "operator": "**", "rightExpression": { "hexValue": "3237", - "id": 27510, + "id": 31658, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2471:2:21", + "src": "2545:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", "typeString": "int_const 27" }, "value": "27" }, - "src": "2465:8:21", + "src": "2539:8:30", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" @@ -2107,21 +2152,21 @@ "visibility": "internal" }, { - "id": 27519, + "id": 31667, "nodeType": "StructDefinition", - "src": "2557:167:21", + "src": "2631:167:30", "nodes": [], "canonicalName": "Utility.Token", "members": [ { "constant": false, - "id": 27514, + "id": 31662, "mutability": "mutable", "name": "addr", - "nameLocation": "2589:4:21", + "nameLocation": "2663:4:30", "nodeType": "VariableDeclaration", - "scope": 27519, - "src": "2581:12:21", + "scope": 31667, + "src": "2655:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2129,10 +2174,10 @@ "typeString": "address" }, "typeName": { - "id": 27513, + "id": 31661, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2581:7:21", + "src": "2655:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2143,13 +2188,13 @@ }, { "constant": false, - "id": 27516, + "id": 31664, "mutability": "mutable", "name": "slot", - "nameLocation": "2637:4:21", + "nameLocation": "2711:4:30", "nodeType": "VariableDeclaration", - "scope": 27519, - "src": "2629:12:21", + "scope": 31667, + "src": "2703:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2157,10 +2202,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27515, + "id": 31663, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2629:7:21", + "src": "2703:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2170,13 +2215,13 @@ }, { "constant": false, - "id": 27518, + "id": 31666, "mutability": "mutable", "name": "orcl", - "nameLocation": "2684:4:21", + "nameLocation": "2758:4:30", "nodeType": "VariableDeclaration", - "scope": 27519, - "src": "2676:12:21", + "scope": 31667, + "src": "2750:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2184,10 +2229,10 @@ "typeString": "address" }, "typeName": { - "id": 27517, + "id": 31665, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2676:7:21", + "src": "2750:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2198,61 +2243,61 @@ } ], "name": "Token", - "nameLocation": "2564:5:21", - "scope": 27932, + "nameLocation": "2638:5:30", + "scope": 32080, "visibility": "public" }, { - "id": 27524, + "id": 31672, "nodeType": "VariableDeclaration", - "src": "2733:33:21", + "src": "2807:33:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "tokens", - "nameLocation": "2760:6:21", - "scope": 27932, + "nameLocation": "2834:6:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token)" }, "typeName": { - "id": 27523, + "id": 31671, "keyType": { - "id": 27520, + "id": 31668, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2742:7:21", + "src": "2816:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "2733:26:21", + "src": "2807:26:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token)" }, "valueType": { - "id": 27522, + "id": 31670, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27521, + "id": 31669, "name": "Token", "nameLocations": [ - "2753:5:21" + "2827:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27519, - "src": "2753:5:21" + "referencedDeclaration": 31667, + "src": "2827:5:30" }, - "referencedDeclaration": 27519, - "src": "2753:5:21", + "referencedDeclaration": 31667, + "src": "2827:5:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage_ptr", + "typeIdentifier": "t_struct$_Token_$31667_storage_ptr", "typeString": "struct Utility.Token" } } @@ -2260,21 +2305,21 @@ "visibility": "internal" }, { - "id": 27529, + "id": 31677, "nodeType": "StructDefinition", - "src": "2775:68:21", + "src": "2849:68:30", "nodes": [], "canonicalName": "Utility.TestObj", "members": [ { "constant": false, - "id": 27526, + "id": 31674, "mutability": "mutable", "name": "pre", - "nameLocation": "2809:3:21", + "nameLocation": "2883:3:30", "nodeType": "VariableDeclaration", - "scope": 27529, - "src": "2801:11:21", + "scope": 31677, + "src": "2875:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2282,10 +2327,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27525, + "id": 31673, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2801:7:21", + "src": "2875:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2295,13 +2340,13 @@ }, { "constant": false, - "id": 27528, + "id": 31676, "mutability": "mutable", "name": "post", - "nameLocation": "2831:4:21", + "nameLocation": "2905:4:30", "nodeType": "VariableDeclaration", - "scope": 27529, - "src": "2823:12:21", + "scope": 31677, + "src": "2897:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2309,10 +2354,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27527, + "id": 31675, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2823:7:21", + "src": "2897:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2322,33 +2367,33 @@ } ], "name": "TestObj", - "nameLocation": "2782:7:21", - "scope": 27932, + "nameLocation": "2856:7:30", + "scope": 32080, "visibility": "public" }, { - "id": 27535, + "id": 31683, "nodeType": "EventDefinition", - "src": "2851:29:21", + "src": "2925:29:30", "nodes": [], "anonymous": false, "eventSelector": "3c5ad147104e56be34a9176a6692f7df8d2f4b29a5af06bc6b98970d329d6577", "name": "Debug", - "nameLocation": "2857:5:21", + "nameLocation": "2931:5:30", "parameters": { - "id": 27534, + "id": 31682, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27531, + "id": 31679, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27535, - "src": "2863:6:21", + "scope": 31683, + "src": "2937:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2356,10 +2401,10 @@ "typeString": "string" }, "typeName": { - "id": 27530, + "id": 31678, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2863:6:21", + "src": "2937:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2369,14 +2414,14 @@ }, { "constant": false, - "id": 27533, + "id": 31681, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27535, - "src": "2871:7:21", + "scope": 31683, + "src": "2945:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2384,10 +2429,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27532, + "id": 31680, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2871:7:21", + "src": "2945:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2396,32 +2441,32 @@ "visibility": "internal" } ], - "src": "2862:17:21" + "src": "2936:17:30" } }, { - "id": 27541, + "id": 31689, "nodeType": "EventDefinition", - "src": "2886:29:21", + "src": "2960:29:30", "nodes": [], "anonymous": false, "eventSelector": "14186b8ac9c91f14b0f16f9e886356157442bb899be26513dfe1d4d5929a5bac", "name": "Debug", - "nameLocation": "2892:5:21", + "nameLocation": "2966:5:30", "parameters": { - "id": 27540, + "id": 31688, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27537, + "id": 31685, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27541, - "src": "2898:6:21", + "scope": 31689, + "src": "2972:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2429,10 +2474,10 @@ "typeString": "string" }, "typeName": { - "id": 27536, + "id": 31684, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2898:6:21", + "src": "2972:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2442,14 +2487,14 @@ }, { "constant": false, - "id": 27539, + "id": 31687, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27541, - "src": "2906:7:21", + "scope": 31689, + "src": "2980:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2457,10 +2502,10 @@ "typeString": "address" }, "typeName": { - "id": 27538, + "id": 31686, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2906:7:21", + "src": "2980:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2470,32 +2515,32 @@ "visibility": "internal" } ], - "src": "2897:17:21" + "src": "2971:17:30" } }, { - "id": 27547, + "id": 31695, "nodeType": "EventDefinition", - "src": "2921:26:21", + "src": "2995:26:30", "nodes": [], "anonymous": false, "eventSelector": "d1401e4d321999a7547f3d989953912043b0f4ab8471cc7307695072f6ee9d83", "name": "Debug", - "nameLocation": "2927:5:21", + "nameLocation": "3001:5:30", "parameters": { - "id": 27546, + "id": 31694, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27543, + "id": 31691, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27547, - "src": "2933:6:21", + "scope": 31695, + "src": "3007:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2503,10 +2548,10 @@ "typeString": "string" }, "typeName": { - "id": 27542, + "id": 31690, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2933:6:21", + "src": "3007:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2516,14 +2561,14 @@ }, { "constant": false, - "id": 27545, + "id": 31693, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27547, - "src": "2941:4:21", + "scope": 31695, + "src": "3015:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2531,10 +2576,10 @@ "typeString": "bool" }, "typeName": { - "id": 27544, + "id": 31692, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2941:4:21", + "src": "3015:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2543,32 +2588,32 @@ "visibility": "internal" } ], - "src": "2932:14:21" + "src": "3006:14:30" } }, { - "id": 27553, + "id": 31701, "nodeType": "EventDefinition", - "src": "2953:28:21", + "src": "3027:28:30", "nodes": [], "anonymous": false, "eventSelector": "747eaa98d4c6787fb9ebfa7ba00179a57433dbd57fd28208b7a240d949164a09", "name": "Debug", - "nameLocation": "2959:5:21", + "nameLocation": "3033:5:30", "parameters": { - "id": 27552, + "id": 31700, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27549, + "id": 31697, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27553, - "src": "2965:6:21", + "scope": 31701, + "src": "3039:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2576,10 +2621,10 @@ "typeString": "string" }, "typeName": { - "id": 27548, + "id": 31696, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2965:6:21", + "src": "3039:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2589,14 +2634,14 @@ }, { "constant": false, - "id": 27551, + "id": 31699, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27553, - "src": "2973:6:21", + "scope": 31701, + "src": "3047:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2604,10 +2649,10 @@ "typeString": "string" }, "typeName": { - "id": 27550, + "id": 31698, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2973:6:21", + "src": "3047:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2616,36 +2661,36 @@ "visibility": "internal" } ], - "src": "2964:16:21" + "src": "3038:16:30" } }, { - "id": 27577, + "id": 31725, "nodeType": "FunctionDefinition", - "src": "2989:103:21", + "src": "3063:103:30", "nodes": [], "body": { - "id": 27576, + "id": 31724, "nodeType": "Block", - "src": "3010:82:21", + "src": "3084:82:30", "nodes": [], "statements": [ { "expression": { - "id": 27574, + "id": 31722, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 27556, + "id": 31704, "name": "hevm", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27417, - "src": "3012:4:21", + "referencedDeclaration": 31562, + "src": "3086:4:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, @@ -2665,14 +2710,14 @@ "arguments": [ { "hexValue": "6865766d20636865617420636f6465", - "id": 27567, + "id": 31715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3066:17:21", + "src": "3140:17:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d", "typeString": "literal_string \"hevm cheat code\"" @@ -2687,18 +2732,18 @@ "typeString": "literal_string \"hevm cheat code\"" } ], - "id": 27566, + "id": 31714, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "3056:9:21", + "src": "3130:9:30", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 27568, + "id": 31716, "isConstant": false, "isLValue": false, "isPure": true, @@ -2707,7 +2752,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3056:28:21", + "src": "3130:28:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2722,26 +2767,26 @@ "typeString": "bytes32" } ], - "id": 27565, + "id": 31713, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3048:7:21", + "src": "3122:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 27564, + "id": 31712, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3048:7:21", + "src": "3122:7:30", "typeDescriptions": {} } }, - "id": 27569, + "id": 31717, "isConstant": false, "isLValue": false, "isPure": true, @@ -2750,7 +2795,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3048:37:21", + "src": "3122:37:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2765,26 +2810,26 @@ "typeString": "uint256" } ], - "id": 27563, + "id": 31711, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3040:7:21", + "src": "3114:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint160_$", "typeString": "type(uint160)" }, "typeName": { - "id": 27562, + "id": 31710, "name": "uint160", "nodeType": "ElementaryTypeName", - "src": "3040:7:21", + "src": "3114:7:30", "typeDescriptions": {} } }, - "id": 27570, + "id": 31718, "isConstant": false, "isLValue": false, "isPure": true, @@ -2793,7 +2838,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3040:46:21", + "src": "3114:46:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint160", @@ -2808,26 +2853,26 @@ "typeString": "uint160" } ], - "id": 27561, + "id": 31709, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3032:7:21", + "src": "3106:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 27560, + "id": 31708, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "3032:7:21", + "src": "3106:7:30", "typeDescriptions": {} } }, - "id": 27571, + "id": 31719, "isConstant": false, "isLValue": false, "isPure": true, @@ -2836,7 +2881,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3032:55:21", + "src": "3106:55:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -2851,26 +2896,26 @@ "typeString": "bytes20" } ], - "id": 27559, + "id": 31707, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3024:7:21", + "src": "3098:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27558, + "id": 31706, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3024:7:21", + "src": "3098:7:30", "typeDescriptions": {} } }, - "id": 27572, + "id": 31720, "isConstant": false, "isLValue": false, "isPure": true, @@ -2879,7 +2924,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3024:64:21", + "src": "3098:64:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2894,18 +2939,18 @@ "typeString": "address" } ], - "id": 27557, + "id": 31705, "name": "Hevm", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27404, - "src": "3019:4:21", + "referencedDeclaration": 31549, + "src": "3093:4:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Hevm_$27404_$", + "typeIdentifier": "t_type$_t_contract$_Hevm_$31549_$", "typeString": "type(contract Hevm)" } }, - "id": 27573, + "id": 31721, "isConstant": false, "isLValue": false, "isPure": true, @@ -2914,22 +2959,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3019:70:21", + "src": "3093:70:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, - "src": "3012:77:21", + "src": "3086:77:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, - "id": 27575, + "id": 31723, "nodeType": "ExpressionStatement", - "src": "3012:77:21" + "src": "3086:77:30" } ] }, @@ -2939,49 +2984,49 @@ "name": "", "nameLocation": "-1:-1:-1", "parameters": { - "id": 27554, + "id": 31702, "nodeType": "ParameterList", "parameters": [], - "src": "3000:2:21" + "src": "3074:2:30" }, "returnParameters": { - "id": 27555, + "id": 31703, "nodeType": "ParameterList", "parameters": [], - "src": "3010:0:21" + "src": "3084:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27602, + "id": 31750, "nodeType": "FunctionDefinition", - "src": "3238:184:21", + "src": "3312:184:30", "nodes": [], "body": { - "id": 27601, + "id": 31749, "nodeType": "Block", - "src": "3269:153:21", + "src": "3343:153:30", "nodes": [], "statements": [ { "expression": { - "id": 27585, + "id": 31733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 27580, + "id": 31728, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27426, - "src": "3280:3:21", + "referencedDeclaration": 31571, + "src": "3354:3:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, @@ -2991,39 +3036,39 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 27583, + "id": 31731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3286:9:21", + "src": "3360:9:30", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$27385_$", + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$30379_$", "typeString": "function () returns (contract Actor)" }, "typeName": { - "id": 27582, + "id": 31730, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27581, + "id": 31729, "name": "Actor", "nameLocations": [ - "3290:5:21" + "3364:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "3290:5:21" + "referencedDeclaration": 30379, + "src": "3364:5:30" }, - "referencedDeclaration": 27385, - "src": "3290:5:21", + "referencedDeclaration": 30379, + "src": "3364:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } }, - "id": 27584, + "id": 31732, "isConstant": false, "isLValue": false, "isPure": false, @@ -3032,39 +3077,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3286:11:21", + "src": "3360:11:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "src": "3280:17:21", + "src": "3354:17:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 27586, + "id": 31734, "nodeType": "ExpressionStatement", - "src": "3280:17:21" + "src": "3354:17:30" }, { "expression": { - "id": 27592, + "id": 31740, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 27587, + "id": 31735, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27420, - "src": "3321:3:21", + "referencedDeclaration": 31565, + "src": "3395:3:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, @@ -3074,39 +3119,39 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 27590, + "id": 31738, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3327:9:21", + "src": "3401:9:30", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$27385_$", + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$30379_$", "typeString": "function () returns (contract Actor)" }, "typeName": { - "id": 27589, + "id": 31737, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27588, + "id": 31736, "name": "Actor", "nameLocations": [ - "3331:5:21" + "3405:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "3331:5:21" + "referencedDeclaration": 30379, + "src": "3405:5:30" }, - "referencedDeclaration": 27385, - "src": "3331:5:21", + "referencedDeclaration": 30379, + "src": "3405:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } }, - "id": 27591, + "id": 31739, "isConstant": false, "isLValue": false, "isPure": false, @@ -3115,39 +3160,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3327:11:21", + "src": "3401:11:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "src": "3321:17:21", + "src": "3395:17:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 27593, + "id": 31741, "nodeType": "ExpressionStatement", - "src": "3321:17:21" + "src": "3395:17:30" }, { "expression": { - "id": 27599, + "id": 31747, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 27594, + "id": 31742, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27423, - "src": "3388:3:21", + "referencedDeclaration": 31568, + "src": "3462:3:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, @@ -3157,39 +3202,39 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 27597, + "id": 31745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3394:9:21", + "src": "3468:9:30", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$27385_$", + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$30379_$", "typeString": "function () returns (contract Actor)" }, "typeName": { - "id": 27596, + "id": 31744, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27595, + "id": 31743, "name": "Actor", "nameLocations": [ - "3398:5:21" + "3472:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "3398:5:21" + "referencedDeclaration": 30379, + "src": "3472:5:30" }, - "referencedDeclaration": 27385, - "src": "3398:5:21", + "referencedDeclaration": 30379, + "src": "3472:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } }, - "id": 27598, + "id": 31746, "isConstant": false, "isLValue": false, "isPure": false, @@ -3198,22 +3243,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3394:11:21", + "src": "3468:11:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "src": "3388:17:21", + "src": "3462:17:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 27600, + "id": 31748, "nodeType": "ExpressionStatement", - "src": "3388:17:21" + "src": "3462:17:30" } ] }, @@ -3222,38 +3267,38 @@ "kind": "function", "modifiers": [], "name": "createActors", - "nameLocation": "3247:12:21", + "nameLocation": "3321:12:30", "parameters": { - "id": 27578, + "id": 31726, "nodeType": "ParameterList", "parameters": [], - "src": "3259:2:21" + "src": "3333:2:30" }, "returnParameters": { - "id": 27579, + "id": 31727, "nodeType": "ParameterList", "parameters": [], - "src": "3269:0:21" + "src": "3343:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27683, + "id": 31831, "nodeType": "FunctionDefinition", - "src": "3546:551:21", + "src": "3620:551:30", "nodes": [], "body": { - "id": 27682, + "id": 31830, "nodeType": "Block", - "src": "3576:521:21", + "src": "3650:521:30", "nodes": [], "statements": [ { "expression": { - "id": 27610, + "id": 31758, "isConstant": false, "isLValue": false, "isPure": false, @@ -3261,28 +3306,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27605, + "id": 31753, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3589:6:21", + "referencedDeclaration": 31672, + "src": "3663:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27607, + "id": 31755, "indexExpression": { "hexValue": "55534443", - "id": 27606, + "id": 31754, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3596:6:21", + "src": "3670:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", "typeString": "literal_string \"USDC\"" @@ -3294,22 +3339,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3589:14:21", + "src": "3663:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27608, + "id": 31756, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3604:4:21", + "memberLocation": "3678:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "3589:19:21", + "referencedDeclaration": 31662, + "src": "3663:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3318,30 +3363,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 27609, + "id": 31757, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27429, - "src": "3611:4:21", + "referencedDeclaration": 31574, + "src": "3685:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3589:26:21", + "src": "3663:26:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27611, + "id": 31759, "nodeType": "ExpressionStatement", - "src": "3589:26:21" + "src": "3663:26:30" }, { "expression": { - "id": 27617, + "id": 31765, "isConstant": false, "isLValue": false, "isPure": false, @@ -3349,28 +3394,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27612, + "id": 31760, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3626:6:21", + "referencedDeclaration": 31672, + "src": "3700:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27614, + "id": 31762, "indexExpression": { "hexValue": "55534443", - "id": 27613, + "id": 31761, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3633:6:21", + "src": "3707:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", "typeString": "literal_string \"USDC\"" @@ -3382,22 +3427,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3626:14:21", + "src": "3700:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27615, + "id": 31763, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3641:4:21", + "memberLocation": "3715:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "3626:19:21", + "referencedDeclaration": 31664, + "src": "3700:19:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3407,33 +3452,33 @@ "operator": "=", "rightHandSide": { "hexValue": "39", - "id": 27616, + "id": 31764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3648:1:21", + "src": "3722:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_9_by_1", "typeString": "int_const 9" }, "value": "9" }, - "src": "3626:23:21", + "src": "3700:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27618, + "id": 31766, "nodeType": "ExpressionStatement", - "src": "3626:23:21" + "src": "3700:23:30" }, { "expression": { - "id": 27624, + "id": 31772, "isConstant": false, "isLValue": false, "isPure": false, @@ -3441,28 +3486,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27619, + "id": 31767, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3662:6:21", + "referencedDeclaration": 31672, + "src": "3736:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27621, + "id": 31769, "indexExpression": { "hexValue": "444149", - "id": 27620, + "id": 31768, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3669:5:21", + "src": "3743:5:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568", "typeString": "literal_string \"DAI\"" @@ -3474,22 +3519,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3662:13:21", + "src": "3736:13:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27622, + "id": 31770, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3676:4:21", + "memberLocation": "3750:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "3662:18:21", + "referencedDeclaration": 31662, + "src": "3736:18:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3498,30 +3543,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 27623, + "id": 31771, "name": "DAI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27432, - "src": "3683:3:21", + "referencedDeclaration": 31577, + "src": "3757:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3662:24:21", + "src": "3736:24:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27625, + "id": 31773, "nodeType": "ExpressionStatement", - "src": "3662:24:21" + "src": "3736:24:30" }, { "expression": { - "id": 27631, + "id": 31779, "isConstant": false, "isLValue": false, "isPure": false, @@ -3529,28 +3574,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27626, + "id": 31774, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3697:6:21", + "referencedDeclaration": 31672, + "src": "3771:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27628, + "id": 31776, "indexExpression": { "hexValue": "444149", - "id": 27627, + "id": 31775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3704:5:21", + "src": "3778:5:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568", "typeString": "literal_string \"DAI\"" @@ -3562,22 +3607,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3697:13:21", + "src": "3771:13:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27629, + "id": 31777, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3711:4:21", + "memberLocation": "3785:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "3697:18:21", + "referencedDeclaration": 31664, + "src": "3771:18:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3587,33 +3632,33 @@ "operator": "=", "rightHandSide": { "hexValue": "32", - "id": 27630, + "id": 31778, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3718:1:21", + "src": "3792:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "3697:22:21", + "src": "3771:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27632, + "id": 31780, "nodeType": "ExpressionStatement", - "src": "3697:22:21" + "src": "3771:22:30" }, { "expression": { - "id": 27638, + "id": 31786, "isConstant": false, "isLValue": false, "isPure": false, @@ -3621,28 +3666,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27633, + "id": 31781, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3730:6:21", + "referencedDeclaration": 31672, + "src": "3804:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27635, + "id": 31783, "indexExpression": { "hexValue": "444149", - "id": 27634, + "id": 31782, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3737:5:21", + "src": "3811:5:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568", "typeString": "literal_string \"DAI\"" @@ -3654,22 +3699,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3730:13:21", + "src": "3804:13:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27636, + "id": 31784, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3744:4:21", + "memberLocation": "3818:4:30", "memberName": "orcl", "nodeType": "MemberAccess", - "referencedDeclaration": 27518, - "src": "3730:18:21", + "referencedDeclaration": 31666, + "src": "3804:18:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3679,33 +3724,33 @@ "operator": "=", "rightHandSide": { "hexValue": "307841656430633338343032613564313964663645346330334634453244636544366532396331656539", - "id": 27637, + "id": 31785, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3751:42:21", + "src": "3825:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "value": "0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9" }, - "src": "3730:63:21", + "src": "3804:63:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27639, + "id": 31787, "nodeType": "ExpressionStatement", - "src": "3730:63:21" + "src": "3804:63:30" }, { "expression": { - "id": 27645, + "id": 31793, "isConstant": false, "isLValue": false, "isPure": false, @@ -3713,28 +3758,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27640, + "id": 31788, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3806:6:21", + "referencedDeclaration": 31672, + "src": "3880:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27642, + "id": 31790, "indexExpression": { "hexValue": "57455448", - "id": 27641, + "id": 31789, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3813:6:21", + "src": "3887:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8", "typeString": "literal_string \"WETH\"" @@ -3746,22 +3791,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3806:14:21", + "src": "3880:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27643, + "id": 31791, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3821:4:21", + "memberLocation": "3895:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "3806:19:21", + "referencedDeclaration": 31662, + "src": "3880:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3770,30 +3815,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 27644, + "id": 31792, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27435, - "src": "3828:4:21", + "referencedDeclaration": 31580, + "src": "3902:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3806:26:21", + "src": "3880:26:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27646, + "id": 31794, "nodeType": "ExpressionStatement", - "src": "3806:26:21" + "src": "3880:26:30" }, { "expression": { - "id": 27652, + "id": 31800, "isConstant": false, "isLValue": false, "isPure": false, @@ -3801,28 +3846,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27647, + "id": 31795, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3843:6:21", + "referencedDeclaration": 31672, + "src": "3917:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27649, + "id": 31797, "indexExpression": { "hexValue": "57455448", - "id": 27648, + "id": 31796, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3850:6:21", + "src": "3924:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8", "typeString": "literal_string \"WETH\"" @@ -3834,22 +3879,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3843:14:21", + "src": "3917:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27650, + "id": 31798, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3858:4:21", + "memberLocation": "3932:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "3843:19:21", + "referencedDeclaration": 31664, + "src": "3917:19:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3859,33 +3904,33 @@ "operator": "=", "rightHandSide": { "hexValue": "33", - "id": 27651, + "id": 31799, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3865:1:21", + "src": "3939:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, - "src": "3843:23:21", + "src": "3917:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27653, + "id": 31801, "nodeType": "ExpressionStatement", - "src": "3843:23:21" + "src": "3917:23:30" }, { "expression": { - "id": 27659, + "id": 31807, "isConstant": false, "isLValue": false, "isPure": false, @@ -3893,28 +3938,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27654, + "id": 31802, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3877:6:21", + "referencedDeclaration": 31672, + "src": "3951:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27656, + "id": 31804, "indexExpression": { "hexValue": "57455448", - "id": 27655, + "id": 31803, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3884:6:21", + "src": "3958:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8", "typeString": "literal_string \"WETH\"" @@ -3926,22 +3971,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3877:14:21", + "src": "3951:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27657, + "id": 31805, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3892:4:21", + "memberLocation": "3966:4:30", "memberName": "orcl", "nodeType": "MemberAccess", - "referencedDeclaration": 27518, - "src": "3877:19:21", + "referencedDeclaration": 31666, + "src": "3951:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3951,33 +3996,33 @@ "operator": "=", "rightHandSide": { "hexValue": "307835663465433344663963626434333731344645323734306635453336313631353563356238343139", - "id": 27658, + "id": 31806, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3899:42:21", + "src": "3973:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "value": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" }, - "src": "3877:64:21", + "src": "3951:64:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27660, + "id": 31808, "nodeType": "ExpressionStatement", - "src": "3877:64:21" + "src": "3951:64:30" }, { "expression": { - "id": 27666, + "id": 31814, "isConstant": false, "isLValue": false, "isPure": false, @@ -3985,28 +4030,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27661, + "id": 31809, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3954:6:21", + "referencedDeclaration": 31672, + "src": "4028:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27663, + "id": 31811, "indexExpression": { "hexValue": "57425443", - "id": 27662, + "id": 31810, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3961:6:21", + "src": "4035:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_98da2c5e4c6b1db946694570273b859a6e4083ccc8faa155edfc4c54eb3cfd73", "typeString": "literal_string \"WBTC\"" @@ -4018,22 +4063,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3954:14:21", + "src": "4028:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27664, + "id": 31812, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3969:4:21", + "memberLocation": "4043:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "3954:19:21", + "referencedDeclaration": 31662, + "src": "4028:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4042,30 +4087,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 27665, + "id": 31813, "name": "WBTC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27438, - "src": "3976:4:21", + "referencedDeclaration": 31583, + "src": "4050:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3954:26:21", + "src": "4028:26:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27667, + "id": 31815, "nodeType": "ExpressionStatement", - "src": "3954:26:21" + "src": "4028:26:30" }, { "expression": { - "id": 27673, + "id": 31821, "isConstant": false, "isLValue": false, "isPure": false, @@ -4073,28 +4118,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27668, + "id": 31816, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3991:6:21", + "referencedDeclaration": 31672, + "src": "4065:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27670, + "id": 31818, "indexExpression": { "hexValue": "57425443", - "id": 27669, + "id": 31817, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3998:6:21", + "src": "4072:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_98da2c5e4c6b1db946694570273b859a6e4083ccc8faa155edfc4c54eb3cfd73", "typeString": "literal_string \"WBTC\"" @@ -4106,22 +4151,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3991:14:21", + "src": "4065:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27671, + "id": 31819, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4006:4:21", + "memberLocation": "4080:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "3991:19:21", + "referencedDeclaration": 31664, + "src": "4065:19:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4131,33 +4176,33 @@ "operator": "=", "rightHandSide": { "hexValue": "30", - "id": 27672, + "id": 31820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4013:1:21", + "src": "4087:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3991:23:21", + "src": "4065:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27674, + "id": 31822, "nodeType": "ExpressionStatement", - "src": "3991:23:21" + "src": "4065:23:30" }, { "expression": { - "id": 27680, + "id": 31828, "isConstant": false, "isLValue": false, "isPure": false, @@ -4165,28 +4210,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27675, + "id": 31823, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "4025:6:21", + "referencedDeclaration": 31672, + "src": "4099:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27677, + "id": 31825, "indexExpression": { "hexValue": "57425443", - "id": 27676, + "id": 31824, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4032:6:21", + "src": "4106:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_98da2c5e4c6b1db946694570273b859a6e4083ccc8faa155edfc4c54eb3cfd73", "typeString": "literal_string \"WBTC\"" @@ -4198,22 +4243,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4025:14:21", + "src": "4099:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27678, + "id": 31826, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4040:4:21", + "memberLocation": "4114:4:30", "memberName": "orcl", "nodeType": "MemberAccess", - "referencedDeclaration": 27518, - "src": "4025:19:21", + "referencedDeclaration": 31666, + "src": "4099:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4223,29 +4268,29 @@ "operator": "=", "rightHandSide": { "hexValue": "307846343033303038363532326135624545613439383846386341354233366462433937426545383863", - "id": 27679, + "id": 31827, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4047:42:21", + "src": "4121:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "value": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c" }, - "src": "4025:64:21", + "src": "4099:64:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27681, + "id": 31829, "nodeType": "ExpressionStatement", - "src": "4025:64:21" + "src": "4099:64:30" } ] }, @@ -4254,49 +4299,49 @@ "kind": "function", "modifiers": [], "name": "setUpTokens", - "nameLocation": "3555:11:21", + "nameLocation": "3629:11:30", "parameters": { - "id": 27603, + "id": 31751, "nodeType": "ParameterList", "parameters": [], - "src": "3566:2:21" + "src": "3640:2:30" }, "returnParameters": { - "id": 27604, + "id": 31752, "nodeType": "ParameterList", "parameters": [], - "src": "3576:0:21" + "src": "3650:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27747, + "id": 31895, "nodeType": "FunctionDefinition", - "src": "4147:461:21", + "src": "4221:461:30", "nodes": [], "body": { - "id": 27746, + "id": 31894, "nodeType": "Block", - "src": "4214:394:21", + "src": "4288:394:30", "nodes": [], "statements": [ { "assignments": [ - 27693 + 31841 ], "declarations": [ { "constant": false, - "id": 27693, + "id": 31841, "mutability": "mutable", "name": "addr", - "nameLocation": "4233:4:21", + "nameLocation": "4307:4:30", "nodeType": "VariableDeclaration", - "scope": 27746, - "src": "4225:12:21", + "scope": 31894, + "src": "4299:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4304,10 +4349,10 @@ "typeString": "address" }, "typeName": { - "id": 27692, + "id": 31840, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4225:7:21", + "src": "4299:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4317,29 +4362,29 @@ "visibility": "internal" } ], - "id": 27698, + "id": 31846, "initialValue": { "expression": { "baseExpression": { - "id": 27694, + "id": 31842, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "4240:6:21", + "referencedDeclaration": 31672, + "src": "4314:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27696, + "id": 31844, "indexExpression": { - "id": 27695, + "id": 31843, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27685, - "src": "4247:6:21", + "referencedDeclaration": 31833, + "src": "4321:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4350,44 +4395,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4240:14:21", + "src": "4314:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27697, + "id": 31845, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4255:4:21", + "memberLocation": "4329:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "4240:19:21", + "referencedDeclaration": 31662, + "src": "4314:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4225:34:21" + "src": "4299:34:30" }, { "assignments": [ - 27700 + 31848 ], "declarations": [ { "constant": false, - "id": 27700, + "id": 31848, "mutability": "mutable", "name": "slot", - "nameLocation": "4278:4:21", + "nameLocation": "4352:4:30", "nodeType": "VariableDeclaration", - "scope": 27746, - "src": "4270:12:21", + "scope": 31894, + "src": "4344:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4395,10 +4440,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27699, + "id": 31847, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4270:7:21", + "src": "4344:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4407,29 +4452,29 @@ "visibility": "internal" } ], - "id": 27705, + "id": 31853, "initialValue": { "expression": { "baseExpression": { - "id": 27701, + "id": 31849, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "4286:6:21", + "referencedDeclaration": 31672, + "src": "4360:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27703, + "id": 31851, "indexExpression": { - "id": 27702, + "id": 31850, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27685, - "src": "4293:6:21", + "referencedDeclaration": 31833, + "src": "4367:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4440,44 +4485,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4286:14:21", + "src": "4360:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27704, + "id": 31852, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4301:4:21", + "memberLocation": "4375:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "4286:19:21", + "referencedDeclaration": 31664, + "src": "4360:19:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4270:35:21" + "src": "4344:35:30" }, { "assignments": [ - 27707 + 31855 ], "declarations": [ { "constant": false, - "id": 27707, + "id": 31855, "mutability": "mutable", "name": "bal", - "nameLocation": "4324:3:21", + "nameLocation": "4398:3:30", "nodeType": "VariableDeclaration", - "scope": 27746, - "src": "4316:11:21", + "scope": 31894, + "src": "4390:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4485,10 +4530,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27706, + "id": 31854, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4316:7:21", + "src": "4390:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4497,16 +4542,16 @@ "visibility": "internal" } ], - "id": 27714, + "id": 31862, "initialValue": { "arguments": [ { - "id": 27712, + "id": 31860, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27687, - "src": "4353:7:21", + "referencedDeclaration": 31835, + "src": "4427:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4523,12 +4568,12 @@ "expression": { "arguments": [ { - "id": 27709, + "id": 31857, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27693, - "src": "4337:4:21", + "referencedDeclaration": 31841, + "src": "4411:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4542,18 +4587,18 @@ "typeString": "address" } ], - "id": 27708, + "id": 31856, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "4330:6:21", + "referencedDeclaration": 29158, + "src": "4404:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27710, + "id": 31858, "isConstant": false, "isLValue": false, "isPure": false, @@ -4562,29 +4607,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4330:12:21", + "src": "4404:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 27711, + "id": 31859, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4343:9:21", + "memberLocation": "4417:9:30", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26364, - "src": "4330:22:21", + "referencedDeclaration": 29097, + "src": "4404:22:30", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 27713, + "id": 31861, "isConstant": false, "isLValue": false, "isPure": false, @@ -4593,7 +4638,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4330:31:21", + "src": "4404:31:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4601,18 +4646,18 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4316:45:21" + "src": "4390:45:30" }, { "expression": { "arguments": [ { - "id": 27718, + "id": 31866, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27693, - "src": "4399:4:21", + "referencedDeclaration": 31841, + "src": "4473:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4623,24 +4668,24 @@ { "arguments": [ { - "id": 27722, + "id": 31870, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27687, - "src": "4439:7:21", + "referencedDeclaration": 31835, + "src": "4513:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 27723, + "id": 31871, "name": "slot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27700, - "src": "4448:4:21", + "referencedDeclaration": 31848, + "src": "4522:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4659,32 +4704,32 @@ } ], "expression": { - "id": 27720, + "id": 31868, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "4428:3:21", + "src": "4502:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 27721, + "id": 31869, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "4432:6:21", + "memberLocation": "4506:6:30", "memberName": "encode", "nodeType": "MemberAccess", - "src": "4428:10:21", + "src": "4502:10:30", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 27724, + "id": 31872, "isConstant": false, "isLValue": false, "isPure": false, @@ -4693,7 +4738,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4428:25:21", + "src": "4502:25:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -4708,18 +4753,18 @@ "typeString": "bytes memory" } ], - "id": 27719, + "id": 31867, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "4418:9:21", + "src": "4492:9:30", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 27725, + "id": 31873, "isConstant": false, "isLValue": false, "isPure": false, @@ -4728,7 +4773,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4418:36:21", + "src": "4492:36:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4742,18 +4787,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27730, + "id": 31878, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27728, + "id": 31876, "name": "bal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27707, - "src": "4492:3:21", + "referencedDeclaration": 31855, + "src": "4566:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4762,18 +4807,18 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 27729, + "id": 31877, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27689, - "src": "4498:3:21", + "referencedDeclaration": 31837, + "src": "4572:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4492:9:21", + "src": "4566:9:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4787,26 +4832,26 @@ "typeString": "uint256" } ], - "id": 27727, + "id": 31875, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4484:7:21", + "src": "4558:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 27726, + "id": 31874, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4484:7:21", + "src": "4558:7:30", "typeDescriptions": {} } }, - "id": 27731, + "id": 31879, "isConstant": false, "isLValue": false, "isPure": false, @@ -4815,7 +4860,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4484:18:21", + "src": "4558:18:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4839,33 +4884,33 @@ } ], "expression": { - "id": 27715, + "id": 31863, "name": "hevm", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27417, - "src": "4374:4:21", + "referencedDeclaration": 31562, + "src": "4448:4:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, - "id": 27717, + "id": 31865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4379:5:21", + "memberLocation": "4453:5:30", "memberName": "store", "nodeType": "MemberAccess", - "referencedDeclaration": 27403, - "src": "4374:10:21", + "referencedDeclaration": 31548, + "src": "4448:10:30", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$", "typeString": "function (address,bytes32,bytes32) external" } }, - "id": 27732, + "id": 31880, "isConstant": false, "isLValue": false, "isPure": false, @@ -4874,16 +4919,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4374:139:21", + "src": "4448:139:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27733, + "id": 31881, "nodeType": "ExpressionStatement", - "src": "4374:139:21" + "src": "4448:139:30" }, { "expression": { @@ -4891,12 +4936,12 @@ { "arguments": [ { - "id": 27739, + "id": 31887, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27687, - "src": "4558:7:21", + "referencedDeclaration": 31835, + "src": "4632:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4913,12 +4958,12 @@ "expression": { "arguments": [ { - "id": 27736, + "id": 31884, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27693, - "src": "4542:4:21", + "referencedDeclaration": 31841, + "src": "4616:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4932,18 +4977,18 @@ "typeString": "address" } ], - "id": 27735, + "id": 31883, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "4535:6:21", + "referencedDeclaration": 29158, + "src": "4609:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27737, + "id": 31885, "isConstant": false, "isLValue": false, "isPure": false, @@ -4952,29 +4997,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4535:12:21", + "src": "4609:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 27738, + "id": 31886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4548:9:21", + "memberLocation": "4622:9:30", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26364, - "src": "4535:22:21", + "referencedDeclaration": 29097, + "src": "4609:22:30", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 27740, + "id": 31888, "isConstant": false, "isLValue": false, "isPure": false, @@ -4983,7 +5028,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4535:31:21", + "src": "4609:31:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4995,18 +5040,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27743, + "id": 31891, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27741, + "id": 31889, "name": "bal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27707, - "src": "4568:3:21", + "referencedDeclaration": 31855, + "src": "4642:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5015,18 +5060,18 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 27742, + "id": 31890, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27689, - "src": "4574:3:21", + "referencedDeclaration": 31837, + "src": "4648:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4568:9:21", + "src": "4642:9:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5044,7 +5089,7 @@ "typeString": "uint256" } ], - "id": 27734, + "id": 31882, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5060,13 +5105,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "4526:8:21", + "src": "4600:8:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 27744, + "id": 31892, "isConstant": false, "isLValue": false, "isPure": false, @@ -5075,16 +5120,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4526:52:21", + "src": "4600:52:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27745, + "id": 31893, "nodeType": "ExpressionStatement", - "src": "4526:52:21" + "src": "4600:52:30" } ] }, @@ -5093,20 +5138,20 @@ "kind": "function", "modifiers": [], "name": "mint", - "nameLocation": "4156:4:21", + "nameLocation": "4230:4:30", "parameters": { - "id": 27690, + "id": 31838, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27685, + "id": 31833, "mutability": "mutable", "name": "symbol", - "nameLocation": "4169:6:21", + "nameLocation": "4243:6:30", "nodeType": "VariableDeclaration", - "scope": 27747, - "src": "4161:14:21", + "scope": 31895, + "src": "4235:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5114,10 +5159,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 27684, + "id": 31832, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4161:7:21", + "src": "4235:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5127,13 +5172,13 @@ }, { "constant": false, - "id": 27687, + "id": 31835, "mutability": "mutable", "name": "account", - "nameLocation": "4185:7:21", + "nameLocation": "4259:7:30", "nodeType": "VariableDeclaration", - "scope": 27747, - "src": "4177:15:21", + "scope": 31895, + "src": "4251:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5141,10 +5186,10 @@ "typeString": "address" }, "typeName": { - "id": 27686, + "id": 31834, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4177:7:21", + "src": "4251:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5155,13 +5200,13 @@ }, { "constant": false, - "id": 27689, + "id": 31837, "mutability": "mutable", "name": "amt", - "nameLocation": "4202:3:21", + "nameLocation": "4276:3:30", "nodeType": "VariableDeclaration", - "scope": 27747, - "src": "4194:11:21", + "scope": 31895, + "src": "4268:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5169,10 +5214,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27688, + "id": 31836, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4194:7:21", + "src": "4268:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5181,44 +5226,44 @@ "visibility": "internal" } ], - "src": "4160:46:21" + "src": "4234:46:30" }, "returnParameters": { - "id": 27691, + "id": 31839, "nodeType": "ParameterList", "parameters": [], - "src": "4214:0:21" + "src": "4288:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27823, + "id": 31971, "nodeType": "FunctionDefinition", - "src": "4666:583:21", + "src": "4740:583:30", "nodes": [], "body": { - "id": 27822, + "id": 31970, "nodeType": "Block", - "src": "4744:505:21", + "src": "4818:505:30", "nodes": [], "statements": [ { "assignments": [ - 27757 + 31905 ], "declarations": [ { "constant": false, - "id": 27757, + "id": 31905, "mutability": "mutable", "name": "diff", - "nameLocation": "4763:4:21", + "nameLocation": "4837:4:30", "nodeType": "VariableDeclaration", - "scope": 27822, - "src": "4755:12:21", + "scope": 31970, + "src": "4829:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5226,10 +5271,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27756, + "id": 31904, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4755:7:21", + "src": "4829:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5238,25 +5283,25 @@ "visibility": "internal" } ], - "id": 27768, + "id": 31916, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27760, + "id": 31908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27758, + "id": 31906, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4771:4:21", + "referencedDeclaration": 31897, + "src": "4845:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5265,18 +5310,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 27759, + "id": 31907, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "4778:4:21", + "referencedDeclaration": 31899, + "src": "4852:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4771:11:21", + "src": "4845:11:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5287,18 +5332,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27766, + "id": 31914, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27764, + "id": 31912, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "4799:4:21", + "referencedDeclaration": 31899, + "src": "4873:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5307,47 +5352,47 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27765, + "id": 31913, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4806:4:21", + "referencedDeclaration": 31897, + "src": "4880:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4799:11:21", + "src": "4873:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27767, + "id": 31915, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "4771:39:21", + "src": "4845:39:30", "trueExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27763, + "id": 31911, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27761, + "id": 31909, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4785:4:21", + "referencedDeclaration": 31897, + "src": "4859:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5356,18 +5401,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27762, + "id": 31910, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "4792:4:21", + "referencedDeclaration": 31899, + "src": "4866:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4785:11:21", + "src": "4859:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5379,7 +5424,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4755:55:21" + "src": "4829:55:30" }, { "condition": { @@ -5387,18 +5432,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27771, + "id": 31919, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27769, + "id": 31917, "name": "diff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27757, - "src": "4825:4:21", + "referencedDeclaration": 31905, + "src": "4899:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5408,50 +5453,50 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 27770, + "id": 31918, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4833:1:21", + "src": "4907:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4825:9:21", + "src": "4899:9:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 27773, + "id": 31921, "nodeType": "IfStatement", - "src": "4821:22:21", + "src": "4895:22:30", "trueBody": { - "functionReturnParameters": 27755, - "id": 27772, + "functionReturnParameters": 31903, + "id": 31920, "nodeType": "Return", - "src": "4836:7:21" + "src": "4910:7:30" } }, { "assignments": [ - 27775 + 31923 ], "declarations": [ { "constant": false, - "id": 27775, + "id": 31923, "mutability": "mutable", "name": "denominator", - "nameLocation": "4863:11:21", + "nameLocation": "4937:11:30", "nodeType": "VariableDeclaration", - "scope": 27822, - "src": "4855:19:21", + "scope": 31970, + "src": "4929:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5459,10 +5504,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27774, + "id": 31922, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4855:7:21", + "src": "4929:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5471,25 +5516,25 @@ "visibility": "internal" } ], - "id": 27782, + "id": 31930, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27778, + "id": 31926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27776, + "id": 31924, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4877:4:21", + "referencedDeclaration": 31897, + "src": "4951:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5499,52 +5544,52 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 27777, + "id": 31925, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4885:1:21", + "src": "4959:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4877:9:21", + "src": "4951:9:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { - "id": 27780, + "id": 31928, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4896:4:21", + "referencedDeclaration": 31897, + "src": "4970:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27781, + "id": 31929, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "4877:23:21", + "src": "4951:23:30", "trueExpression": { - "id": 27779, + "id": 31927, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "4889:4:21", + "referencedDeclaration": 31899, + "src": "4963:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5556,22 +5601,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4855:45:21" + "src": "4929:45:30" }, { "assignments": [ - 27784 + 31932 ], "declarations": [ { "constant": false, - "id": 27784, + "id": 31932, "mutability": "mutable", "name": "check", - "nameLocation": "4916:5:21", + "nameLocation": "4990:5:30", "nodeType": "VariableDeclaration", - "scope": 27822, - "src": "4911:10:21", + "scope": 31970, + "src": "4985:10:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5579,10 +5624,10 @@ "typeString": "bool" }, "typeName": { - "id": 27783, + "id": 31931, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4911:4:21", + "src": "4985:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5591,13 +5636,13 @@ "visibility": "internal" } ], - "id": 27799, + "id": 31947, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27798, + "id": 31946, "isConstant": false, "isLValue": false, "isPure": false, @@ -5609,7 +5654,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27790, + "id": 31938, "isConstant": false, "isLValue": false, "isPure": false, @@ -5621,18 +5666,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27787, + "id": 31935, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27785, + "id": 31933, "name": "diff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27757, - "src": "4926:4:21", + "referencedDeclaration": 31905, + "src": "5000:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5641,32 +5686,32 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 27786, + "id": 31934, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27512, - "src": "4933:3:21", + "referencedDeclaration": 31660, + "src": "5007:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4926:10:21", + "src": "5000:10:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 27788, + "id": 31936, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4925:12:21", + "src": "4999:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5675,32 +5720,32 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 27789, + "id": 31937, "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27775, - "src": "4940:11:21", + "referencedDeclaration": 31923, + "src": "5014:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4925:26:21", + "src": "4999:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 27791, + "id": 31939, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4924:28:21", + "src": "4998:28:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5715,18 +5760,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27796, + "id": 31944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27792, + "id": 31940, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27512, - "src": "4956:3:21", + "referencedDeclaration": 31660, + "src": "5030:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5739,21 +5784,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27795, + "id": 31943, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27793, + "id": 31941, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4962:2:21", + "src": "5036:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -5763,55 +5808,55 @@ "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { - "id": 27794, + "id": 31942, "name": "accuracy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27753, - "src": "4968:8:21", + "referencedDeclaration": 31901, + "src": "5042:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4962:14:21", + "src": "5036:14:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4956:20:21", + "src": "5030:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 27797, + "id": 31945, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4955:22:21", + "src": "5029:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4924:53:21", + "src": "4998:53:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "4911:66:21" + "src": "4985:66:30" }, { "condition": { - "id": 27801, + "id": 31949, "isConstant": false, "isLValue": false, "isPure": false, @@ -5819,14 +5864,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4994:6:21", + "src": "5068:6:30", "subExpression": { - "id": 27800, + "id": 31948, "name": "check", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27784, - "src": "4995:5:21", + "referencedDeclaration": 31932, + "src": "5069:5:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5837,27 +5882,27 @@ "typeString": "bool" } }, - "id": 27821, + "id": 31969, "nodeType": "IfStatement", - "src": "4990:252:21", + "src": "5064:252:30", "trueBody": { - "id": 27820, + "id": 31968, "nodeType": "Block", - "src": "5001:241:21", + "src": "5075:241:30", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a20617070726f782061203d3d2062206e6f74207361746973666965642c2061636375726163792064696769747320", - "id": 27803, + "id": 31951, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5036:54:21", + "src": "5110:54:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_94772435adb9a5e16afe18480e0e25583a903de130497d52a7375f0e3b0b0ffc", "typeString": "literal_string \"Error: approx a == b not satisfied, accuracy digits \"" @@ -5865,12 +5910,12 @@ "value": "Error: approx a == b not satisfied, accuracy digits " }, { - "id": 27804, + "id": 31952, "name": "accuracy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27753, - "src": "5092:8:21", + "referencedDeclaration": 31901, + "src": "5166:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5888,18 +5933,18 @@ "typeString": "uint256" } ], - "id": 27802, + "id": 31950, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5021:14:21", + "src": "5095:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27805, + "id": 31953, "isConstant": false, "isLValue": false, "isPure": false, @@ -5908,30 +5953,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5021:80:21", + "src": "5095:80:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27806, + "id": 31954, "nodeType": "EmitStatement", - "src": "5016:85:21" + "src": "5090:85:30" }, { "eventCall": { "arguments": [ { "hexValue": "20204578706563746564", - "id": 27808, + "id": 31956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5136:12:21", + "src": "5210:12:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" @@ -5939,12 +5984,12 @@ "value": " Expected" }, { - "id": 27809, + "id": 31957, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "5150:4:21", + "referencedDeclaration": 31897, + "src": "5224:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5962,18 +6007,18 @@ "typeString": "uint256" } ], - "id": 27807, + "id": 31955, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5121:14:21", + "src": "5195:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27810, + "id": 31958, "isConstant": false, "isLValue": false, "isPure": false, @@ -5982,30 +6027,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5121:34:21", + "src": "5195:34:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27811, + "id": 31959, "nodeType": "EmitStatement", - "src": "5116:39:21" + "src": "5190:39:30" }, { "eventCall": { "arguments": [ { "hexValue": "2020202041637475616c", - "id": 27813, + "id": 31961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5190:12:21", + "src": "5264:12:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" @@ -6013,12 +6058,12 @@ "value": " Actual" }, { - "id": 27814, + "id": 31962, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "5204:4:21", + "referencedDeclaration": 31899, + "src": "5278:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6036,18 +6081,18 @@ "typeString": "uint256" } ], - "id": 27812, + "id": 31960, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5175:14:21", + "src": "5249:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27815, + "id": 31963, "isConstant": false, "isLValue": false, "isPure": false, @@ -6056,34 +6101,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5175:34:21", + "src": "5249:34:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27816, + "id": 31964, "nodeType": "EmitStatement", - "src": "5170:39:21" + "src": "5244:39:30" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 27817, + "id": 31965, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, - "src": "5224:4:21", + "src": "5298:4:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 27818, + "id": 31966, "isConstant": false, "isLValue": false, "isPure": false, @@ -6092,16 +6137,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5224:6:21", + "src": "5298:6:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27819, + "id": 31967, "nodeType": "ExpressionStatement", - "src": "5224:6:21" + "src": "5298:6:30" } ] } @@ -6113,20 +6158,20 @@ "kind": "function", "modifiers": [], "name": "withinPrecision", - "nameLocation": "4675:15:21", + "nameLocation": "4749:15:30", "parameters": { - "id": 27754, + "id": 31902, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27749, + "id": 31897, "mutability": "mutable", "name": "val0", - "nameLocation": "4699:4:21", + "nameLocation": "4773:4:30", "nodeType": "VariableDeclaration", - "scope": 27823, - "src": "4691:12:21", + "scope": 31971, + "src": "4765:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6134,10 +6179,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27748, + "id": 31896, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4691:7:21", + "src": "4765:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6147,13 +6192,13 @@ }, { "constant": false, - "id": 27751, + "id": 31899, "mutability": "mutable", "name": "val1", - "nameLocation": "4713:4:21", + "nameLocation": "4787:4:30", "nodeType": "VariableDeclaration", - "scope": 27823, - "src": "4705:12:21", + "scope": 31971, + "src": "4779:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6161,10 +6206,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27750, + "id": 31898, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4705:7:21", + "src": "4779:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6174,13 +6219,13 @@ }, { "constant": false, - "id": 27753, + "id": 31901, "mutability": "mutable", "name": "accuracy", - "nameLocation": "4727:8:21", + "nameLocation": "4801:8:30", "nodeType": "VariableDeclaration", - "scope": 27823, - "src": "4719:16:21", + "scope": 31971, + "src": "4793:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6188,10 +6233,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27752, + "id": 31900, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4719:7:21", + "src": "4793:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6200,44 +6245,44 @@ "visibility": "internal" } ], - "src": "4690:46:21" + "src": "4764:46:30" }, "returnParameters": { - "id": 27755, + "id": 31903, "nodeType": "ParameterList", "parameters": [], - "src": "4744:0:21" + "src": "4818:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27874, + "id": 32022, "nodeType": "FunctionDefinition", - "src": "5300:479:21", + "src": "5374:479:30", "nodes": [], "body": { - "id": 27873, + "id": 32021, "nodeType": "Block", - "src": "5377:402:21", + "src": "5451:402:30", "nodes": [], "statements": [ { "assignments": [ - 27833 + 31981 ], "declarations": [ { "constant": false, - "id": 27833, + "id": 31981, "mutability": "mutable", "name": "actualDiff", - "nameLocation": "5396:10:21", + "nameLocation": "5470:10:30", "nodeType": "VariableDeclaration", - "scope": 27873, - "src": "5388:18:21", + "scope": 32021, + "src": "5462:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6245,10 +6290,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27832, + "id": 31980, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5388:7:21", + "src": "5462:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6257,25 +6302,25 @@ "visibility": "internal" } ], - "id": 27844, + "id": 31992, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27836, + "id": 31984, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27834, + "id": 31982, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27825, - "src": "5409:4:21", + "referencedDeclaration": 31973, + "src": "5483:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6284,18 +6329,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 27835, + "id": 31983, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27827, - "src": "5416:4:21", + "referencedDeclaration": 31975, + "src": "5490:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5409:11:21", + "src": "5483:11:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6306,18 +6351,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27842, + "id": 31990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27840, + "id": 31988, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27827, - "src": "5437:4:21", + "referencedDeclaration": 31975, + "src": "5511:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6326,47 +6371,47 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27841, + "id": 31989, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27825, - "src": "5444:4:21", + "referencedDeclaration": 31973, + "src": "5518:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5437:11:21", + "src": "5511:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27843, + "id": 31991, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "5409:39:21", + "src": "5483:39:30", "trueExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27839, + "id": 31987, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27837, + "id": 31985, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27825, - "src": "5423:4:21", + "referencedDeclaration": 31973, + "src": "5497:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6375,18 +6420,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27838, + "id": 31986, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27827, - "src": "5430:4:21", + "referencedDeclaration": 31975, + "src": "5504:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5423:11:21", + "src": "5497:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6398,22 +6443,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5388:60:21" + "src": "5462:60:30" }, { "assignments": [ - 27846 + 31994 ], "declarations": [ { "constant": false, - "id": 27846, + "id": 31994, "mutability": "mutable", "name": "check", - "nameLocation": "5464:5:21", + "nameLocation": "5538:5:30", "nodeType": "VariableDeclaration", - "scope": 27873, - "src": "5459:10:21", + "scope": 32021, + "src": "5533:10:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6421,10 +6466,10 @@ "typeString": "bool" }, "typeName": { - "id": 27845, + "id": 31993, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5459:4:21", + "src": "5533:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6433,24 +6478,24 @@ "visibility": "internal" } ], - "id": 27850, + "id": 31998, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27849, + "id": 31997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27847, + "id": 31995, "name": "actualDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27833, - "src": "5472:10:21", + "referencedDeclaration": 31981, + "src": "5546:10:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6459,29 +6504,29 @@ "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { - "id": 27848, + "id": 31996, "name": "expectedDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27829, - "src": "5486:12:21", + "referencedDeclaration": 31977, + "src": "5560:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5472:26:21", + "src": "5546:26:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "5459:39:21" + "src": "5533:39:30" }, { "condition": { - "id": 27852, + "id": 32000, "isConstant": false, "isLValue": false, "isPure": false, @@ -6489,14 +6534,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5515:6:21", + "src": "5589:6:30", "subExpression": { - "id": 27851, + "id": 31999, "name": "check", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27846, - "src": "5516:5:21", + "referencedDeclaration": 31994, + "src": "5590:5:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6507,27 +6552,27 @@ "typeString": "bool" } }, - "id": 27872, + "id": 32020, "nodeType": "IfStatement", - "src": "5511:261:21", + "src": "5585:261:30", "trueBody": { - "id": 27871, + "id": 32019, "nodeType": "Block", - "src": "5523:249:21", + "src": "5597:249:30", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a20617070726f782061203d3d2062206e6f74207361746973666965642c20616363757261637920646966666572656e636520", - "id": 27854, + "id": 32002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5558:58:21", + "src": "5632:58:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_96172d3974b4dd800f0469c3a6568537958d8450292a90b9e1d84055f2a54229", "typeString": "literal_string \"Error: approx a == b not satisfied, accuracy difference \"" @@ -6535,12 +6580,12 @@ "value": "Error: approx a == b not satisfied, accuracy difference " }, { - "id": 27855, + "id": 32003, "name": "expectedDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27829, - "src": "5618:12:21", + "referencedDeclaration": 31977, + "src": "5692:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6558,18 +6603,18 @@ "typeString": "uint256" } ], - "id": 27853, + "id": 32001, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5543:14:21", + "src": "5617:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27856, + "id": 32004, "isConstant": false, "isLValue": false, "isPure": false, @@ -6578,30 +6623,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5543:88:21", + "src": "5617:88:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27857, + "id": 32005, "nodeType": "EmitStatement", - "src": "5538:93:21" + "src": "5612:93:30" }, { "eventCall": { "arguments": [ { "hexValue": "20204578706563746564", - "id": 27859, + "id": 32007, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5666:12:21", + "src": "5740:12:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" @@ -6609,12 +6654,12 @@ "value": " Expected" }, { - "id": 27860, + "id": 32008, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27825, - "src": "5680:4:21", + "referencedDeclaration": 31973, + "src": "5754:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6632,18 +6677,18 @@ "typeString": "uint256" } ], - "id": 27858, + "id": 32006, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5651:14:21", + "src": "5725:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27861, + "id": 32009, "isConstant": false, "isLValue": false, "isPure": false, @@ -6652,30 +6697,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5651:34:21", + "src": "5725:34:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27862, + "id": 32010, "nodeType": "EmitStatement", - "src": "5646:39:21" + "src": "5720:39:30" }, { "eventCall": { "arguments": [ { "hexValue": "2020202041637475616c", - "id": 27864, + "id": 32012, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5720:12:21", + "src": "5794:12:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" @@ -6683,12 +6728,12 @@ "value": " Actual" }, { - "id": 27865, + "id": 32013, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27827, - "src": "5734:4:21", + "referencedDeclaration": 31975, + "src": "5808:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6706,18 +6751,18 @@ "typeString": "uint256" } ], - "id": 27863, + "id": 32011, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5705:14:21", + "src": "5779:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27866, + "id": 32014, "isConstant": false, "isLValue": false, "isPure": false, @@ -6726,34 +6771,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5705:34:21", + "src": "5779:34:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27867, + "id": 32015, "nodeType": "EmitStatement", - "src": "5700:39:21" + "src": "5774:39:30" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 27868, + "id": 32016, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, - "src": "5754:4:21", + "src": "5828:4:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 27869, + "id": 32017, "isConstant": false, "isLValue": false, "isPure": false, @@ -6762,16 +6807,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5754:6:21", + "src": "5828:6:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27870, + "id": 32018, "nodeType": "ExpressionStatement", - "src": "5754:6:21" + "src": "5828:6:30" } ] } @@ -6783,20 +6828,20 @@ "kind": "function", "modifiers": [], "name": "withinDiff", - "nameLocation": "5309:10:21", + "nameLocation": "5383:10:30", "parameters": { - "id": 27830, + "id": 31978, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27825, + "id": 31973, "mutability": "mutable", "name": "val0", - "nameLocation": "5328:4:21", + "nameLocation": "5402:4:30", "nodeType": "VariableDeclaration", - "scope": 27874, - "src": "5320:12:21", + "scope": 32022, + "src": "5394:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6804,10 +6849,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27824, + "id": 31972, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5320:7:21", + "src": "5394:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6817,13 +6862,13 @@ }, { "constant": false, - "id": 27827, + "id": 31975, "mutability": "mutable", "name": "val1", - "nameLocation": "5342:4:21", + "nameLocation": "5416:4:30", "nodeType": "VariableDeclaration", - "scope": 27874, - "src": "5334:12:21", + "scope": 32022, + "src": "5408:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6831,10 +6876,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27826, + "id": 31974, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5334:7:21", + "src": "5408:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6844,13 +6889,13 @@ }, { "constant": false, - "id": 27829, + "id": 31977, "mutability": "mutable", "name": "expectedDiff", - "nameLocation": "5356:12:21", + "nameLocation": "5430:12:30", "nodeType": "VariableDeclaration", - "scope": 27874, - "src": "5348:20:21", + "scope": 32022, + "src": "5422:20:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6858,10 +6903,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27828, + "id": 31976, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5348:7:21", + "src": "5422:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6870,64 +6915,64 @@ "visibility": "internal" } ], - "src": "5319:50:21" + "src": "5393:50:30" }, "returnParameters": { - "id": 27831, + "id": 31979, "nodeType": "ParameterList", "parameters": [], - "src": "5377:0:21" + "src": "5451:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27893, + "id": 32041, "nodeType": "FunctionDefinition", - "src": "5787:159:21", + "src": "5861:159:30", "nodes": [], "body": { - "id": 27892, + "id": 32040, "nodeType": "Block", - "src": "5882:64:21", + "src": "5956:64:30", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 27886, + "id": 32034, "name": "val", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27876, - "src": "5917:3:21", + "referencedDeclaration": 32024, + "src": "5991:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 27887, + "id": 32035, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27878, - "src": "5922:3:21", + "referencedDeclaration": 32026, + "src": "5996:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 27888, + "id": 32036, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27880, - "src": "5927:3:21", + "referencedDeclaration": 32028, + "src": "6001:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6935,14 +6980,14 @@ }, { "hexValue": "66616c7365", - "id": 27889, + "id": 32037, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5932:5:21", + "src": "6006:5:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6969,21 +7014,21 @@ "typeString": "bool" } ], - "id": 27885, + "id": 32033, "name": "constrictToRange", "nodeType": "Identifier", "overloadedDeclarations": [ - 27893, - 27931 + 32041, + 32079 ], - "referencedDeclaration": 27931, - "src": "5900:16:21", + "referencedDeclaration": 32079, + "src": "5974:16:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256,bool) pure returns (uint256)" } }, - "id": 27890, + "id": 32038, "isConstant": false, "isLValue": false, "isPure": false, @@ -6992,17 +7037,17 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5900:38:21", + "src": "5974:38:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 27884, - "id": 27891, + "functionReturnParameters": 32032, + "id": 32039, "nodeType": "Return", - "src": "5893:45:21" + "src": "5967:45:30" } ] }, @@ -7011,20 +7056,20 @@ "kind": "function", "modifiers": [], "name": "constrictToRange", - "nameLocation": "5796:16:21", + "nameLocation": "5870:16:30", "parameters": { - "id": 27881, + "id": 32029, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27876, + "id": 32024, "mutability": "mutable", "name": "val", - "nameLocation": "5821:3:21", + "nameLocation": "5895:3:30", "nodeType": "VariableDeclaration", - "scope": 27893, - "src": "5813:11:21", + "scope": 32041, + "src": "5887:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7032,10 +7077,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27875, + "id": 32023, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5813:7:21", + "src": "5887:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7045,13 +7090,13 @@ }, { "constant": false, - "id": 27878, + "id": 32026, "mutability": "mutable", "name": "min", - "nameLocation": "5834:3:21", + "nameLocation": "5908:3:30", "nodeType": "VariableDeclaration", - "scope": 27893, - "src": "5826:11:21", + "scope": 32041, + "src": "5900:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7059,10 +7104,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27877, + "id": 32025, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5826:7:21", + "src": "5900:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7072,13 +7117,13 @@ }, { "constant": false, - "id": 27880, + "id": 32028, "mutability": "mutable", "name": "max", - "nameLocation": "5847:3:21", + "nameLocation": "5921:3:30", "nodeType": "VariableDeclaration", - "scope": 27893, - "src": "5839:11:21", + "scope": 32041, + "src": "5913:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7086,10 +7131,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27879, + "id": 32027, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5839:7:21", + "src": "5913:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7098,21 +7143,21 @@ "visibility": "internal" } ], - "src": "5812:39:21" + "src": "5886:39:30" }, "returnParameters": { - "id": 27884, + "id": 32032, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27883, + "id": 32031, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27893, - "src": "5873:7:21", + "scope": 32041, + "src": "5947:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7120,10 +7165,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27882, + "id": 32030, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5873:7:21", + "src": "5947:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7132,22 +7177,22 @@ "visibility": "internal" } ], - "src": "5872:9:21" + "src": "5946:9:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "pure", "virtual": false, "visibility": "public" }, { - "id": 27931, + "id": 32079, "nodeType": "FunctionDefinition", - "src": "5954:291:21", + "src": "6028:291:30", "nodes": [], "body": { - "id": 27930, + "id": 32078, "nodeType": "Block", - "src": "6063:182:21", + "src": "6137:182:30", "nodes": [], "statements": [ { @@ -7156,7 +7201,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 27911, + "id": 32059, "isConstant": false, "isLValue": false, "isPure": false, @@ -7166,18 +7211,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27908, + "id": 32056, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27906, + "id": 32054, "name": "val", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27895, - "src": "6083:3:21", + "referencedDeclaration": 32043, + "src": "6157:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7187,21 +7232,21 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 27907, + "id": 32055, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6090:1:21", + "src": "6164:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "6083:8:21", + "src": "6157:8:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7210,7 +7255,7 @@ "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { - "id": 27910, + "id": 32058, "isConstant": false, "isLValue": false, "isPure": false, @@ -7218,14 +7263,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "6095:8:21", + "src": "6169:8:30", "subExpression": { - "id": 27909, + "id": 32057, "name": "nonZero", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27901, - "src": "6096:7:21", + "referencedDeclaration": 32049, + "src": "6170:7:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7236,7 +7281,7 @@ "typeString": "bool" } }, - "src": "6083:20:21", + "src": "6157:20:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7248,18 +7293,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27916, + "id": 32064, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27914, + "id": 32062, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27899, - "src": "6133:3:21", + "referencedDeclaration": 32047, + "src": "6207:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7268,18 +7313,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 27915, + "id": 32063, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27897, - "src": "6140:3:21", + "referencedDeclaration": 32045, + "src": "6214:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6133:10:21", + "src": "6207:10:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7291,7 +7336,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27926, + "id": 32074, "isConstant": false, "isLValue": false, "isPure": false, @@ -7301,18 +7346,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27924, + "id": 32072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27919, + "id": 32067, "name": "val", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27895, - "src": "6214:3:21", + "referencedDeclaration": 32043, + "src": "6288:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7327,18 +7372,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27922, + "id": 32070, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27920, + "id": 32068, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27899, - "src": "6221:3:21", + "referencedDeclaration": 32047, + "src": "6295:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7347,38 +7392,38 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27921, + "id": 32069, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27897, - "src": "6227:3:21", + "referencedDeclaration": 32045, + "src": "6301:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6221:9:21", + "src": "6295:9:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 27923, + "id": 32071, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "6220:11:21", + "src": "6294:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6214:17:21", + "src": "6288:17:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7387,74 +7432,74 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 27925, + "id": 32073, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27897, - "src": "6234:3:21", + "referencedDeclaration": 32045, + "src": "6308:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6214:23:21", + "src": "6288:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 27905, - "id": 27927, + "functionReturnParameters": 32053, + "id": 32075, "nodeType": "Return", - "src": "6207:30:21" + "src": "6281:30:30" }, - "id": 27928, + "id": 32076, "nodeType": "IfStatement", - "src": "6129:108:21", + "src": "6203:108:30", "trueBody": { "expression": { - "id": 27917, + "id": 32065, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27899, - "src": "6162:3:21", + "referencedDeclaration": 32047, + "src": "6236:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 27905, - "id": 27918, + "functionReturnParameters": 32053, + "id": 32066, "nodeType": "Return", - "src": "6155:10:21" + "src": "6229:10:30" } }, - "id": 27929, + "id": 32077, "nodeType": "IfStatement", - "src": "6074:163:21", + "src": "6148:163:30", "trueBody": { "expression": { "hexValue": "30", - "id": 27912, + "id": 32060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6112:1:21", + "src": "6186:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "functionReturnParameters": 27905, - "id": 27913, + "functionReturnParameters": 32053, + "id": 32061, "nodeType": "Return", - "src": "6105:8:21" + "src": "6179:8:30" } } ] @@ -7464,20 +7509,20 @@ "kind": "function", "modifiers": [], "name": "constrictToRange", - "nameLocation": "5963:16:21", + "nameLocation": "6037:16:30", "parameters": { - "id": 27902, + "id": 32050, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27895, + "id": 32043, "mutability": "mutable", "name": "val", - "nameLocation": "5988:3:21", + "nameLocation": "6062:3:30", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "5980:11:21", + "scope": 32079, + "src": "6054:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7485,10 +7530,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27894, + "id": 32042, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5980:7:21", + "src": "6054:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7498,13 +7543,13 @@ }, { "constant": false, - "id": 27897, + "id": 32045, "mutability": "mutable", "name": "min", - "nameLocation": "6001:3:21", + "nameLocation": "6075:3:30", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "5993:11:21", + "scope": 32079, + "src": "6067:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7512,10 +7557,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27896, + "id": 32044, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5993:7:21", + "src": "6067:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7525,13 +7570,13 @@ }, { "constant": false, - "id": 27899, + "id": 32047, "mutability": "mutable", "name": "max", - "nameLocation": "6014:3:21", + "nameLocation": "6088:3:30", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "6006:11:21", + "scope": 32079, + "src": "6080:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7539,10 +7584,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27898, + "id": 32046, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6006:7:21", + "src": "6080:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7552,13 +7597,13 @@ }, { "constant": false, - "id": 27901, + "id": 32049, "mutability": "mutable", "name": "nonZero", - "nameLocation": "6024:7:21", + "nameLocation": "6098:7:30", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "6019:12:21", + "scope": 32079, + "src": "6093:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7566,10 +7611,10 @@ "typeString": "bool" }, "typeName": { - "id": 27900, + "id": 32048, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6019:4:21", + "src": "6093:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7578,21 +7623,21 @@ "visibility": "internal" } ], - "src": "5979:53:21" + "src": "6053:53:30" }, "returnParameters": { - "id": 27905, + "id": 32053, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27904, + "id": 32052, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "6054:7:21", + "scope": 32079, + "src": "6128:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7600,10 +7645,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27903, + "id": 32051, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6054:7:21", + "src": "6128:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7612,9 +7657,9 @@ "visibility": "internal" } ], - "src": "6053:9:21" + "src": "6127:9:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "pure", "virtual": false, "visibility": "public" @@ -7624,37 +7669,37 @@ "baseContracts": [ { "baseName": { - "id": 27413, + "id": 31558, "name": "DSTest", "nameLocations": [ - "469:6:21" + "469:6:30" ], "nodeType": "IdentifierPath", "referencedDeclaration": 1786, - "src": "469:6:21" + "src": "469:6:30" }, - "id": 27414, + "id": 31559, "nodeType": "InheritanceSpecifier", - "src": "469:6:21" + "src": "469:6:30" } ], "canonicalName": "Utility", "contractDependencies": [ - 27385 + 30379 ], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 27932, + 32080, 1786 ], "name": "Utility", - "nameLocation": "458:7:21", - "scope": 27933, + "nameLocation": "458:7:30", + "scope": 32081, "usedErrors": [] } ], "license": "AGPL-3.0-or-later" }, - "id": 21 + "id": 30 } \ No newline at end of file diff --git a/out/Utility.sol/User.json b/out/Utility.sol/User.json index fd9c580..dfc8be6 100644 --- a/out/Utility.sol/User.json +++ b/out/Utility.sol/User.json @@ -32,7 +32,7 @@ "methodIdentifiers": { "approve(address,uint256)": "095ea7b3" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/Utility.sol\":\"User\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xcf17bed19a42d40b15e584cfc57b1cef2b2b0e55d812f6740afe2c5c4bf801d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78e8f19f8b8b6107a39d892d073cfeb8872cce4d5c8e7957d29941e092e16fea\",\"dweb:/ipfs/QmYQfx7UYDjSx77d8WmbveFkXK6AyrUfYUdxvufGLbVPSm\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xe4913fabc9dbebe2ebb4ba4eaf629380a71b88b255fabc05492990bfa3b185bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1989ae3326aafbbf80f75036869d5ea3c752614dfce7df17ce0912a7a16dbb7\",\"dweb:/ipfs/QmSQju3J4cHLZeVsnWk53it94W2N243mvbyx42hhV5BxED\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"src/interfaces/Interfaces.sol\":{\"keccak256\":\"0x741b318f522ba8451f4a2e40afcf59e995484318fabe7c57adeba3124bbd7e04\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dba0a37a10519080f892d5c8b87a0ec026ef73492195a901e49f74766b5915f7\",\"dweb:/ipfs/QmduauRea8YdqJaMeHiYH2tRtbydoqgVirSaTzbXMoEjYX\"]},\"src/users/Actor.sol\":{\"keccak256\":\"0x4d9d9176a043f8212d9f383afa33565fcc83845346ae77d6b4bd80a5ece31b5e\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://6c9d789e1e106682d4ee38523b8b8af1b02903aba1079e5dc2ec31ecf709f96a\",\"dweb:/ipfs/QmSuGiTD8dPDXBLU4B3EoJK2zyQz3MQ9GKYiWzPyJnasRb\"]},\"test/Utility.sol\":{\"keccak256\":\"0xcea126c8754daffe443e2328ce2424b7b3dcafec7f3bb73c1f85c1502849552f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://386bb899985ba398a7e34cc5a15c99c73c3a55b4d40356aa01f1147a8b377775\",\"dweb:/ipfs/QmSQE7R4iNQhVyNSWj9Gs839udCrTm2EiuvezJLuwS7vds\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/Utility.sol\":\"User\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xcf17bed19a42d40b15e584cfc57b1cef2b2b0e55d812f6740afe2c5c4bf801d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78e8f19f8b8b6107a39d892d073cfeb8872cce4d5c8e7957d29941e092e16fea\",\"dweb:/ipfs/QmYQfx7UYDjSx77d8WmbveFkXK6AyrUfYUdxvufGLbVPSm\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xe4913fabc9dbebe2ebb4ba4eaf629380a71b88b255fabc05492990bfa3b185bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1989ae3326aafbbf80f75036869d5ea3c752614dfce7df17ce0912a7a16dbb7\",\"dweb:/ipfs/QmSQju3J4cHLZeVsnWk53it94W2N243mvbyx42hhV5BxED\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be\",\"dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA\"]},\"src/users/Actor.sol\":{\"keccak256\":\"0x6ad8911c2d305f1bac636ad070f00e47cb2912c78883ea24698030b41a39ccd3\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://917f42c979b5f2c9bad3cd2c5d34f8caec92282536e6f938e7e20dd1925c4843\",\"dweb:/ipfs/QmYmTcZ3oEDWPUnCy6BfrpRMMeMyhe7gF423HbNSPatXs5\"]},\"test/Utility.sol\":{\"keccak256\":\"0x99dbec5203c841f8f092ac42644aa9e24eb927767826dcdf06addc5d5cbea135\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ecd75e3b538d0eb4404ee763ae474c9e4e64cf1e0804795a6787cedef3c0eeda\",\"dweb:/ipfs/QmTwdFYFVDgVZpg3ebGcVr9vF5ffvcZtLzsdJnkRChxL7s\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.17+commit.8df45f5f" @@ -199,27 +199,27 @@ ], "license": "MIT" }, - "src/interfaces/Interfaces.sol": { - "keccak256": "0x741b318f522ba8451f4a2e40afcf59e995484318fabe7c57adeba3124bbd7e04", + "src/interfaces/IERC20.sol": { + "keccak256": "0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f", "urls": [ - "bzz-raw://dba0a37a10519080f892d5c8b87a0ec026ef73492195a901e49f74766b5915f7", - "dweb:/ipfs/QmduauRea8YdqJaMeHiYH2tRtbydoqgVirSaTzbXMoEjYX" + "bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be", + "dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA" ], "license": "GPL-3.0-or-later" }, "src/users/Actor.sol": { - "keccak256": "0x4d9d9176a043f8212d9f383afa33565fcc83845346ae77d6b4bd80a5ece31b5e", + "keccak256": "0x6ad8911c2d305f1bac636ad070f00e47cb2912c78883ea24698030b41a39ccd3", "urls": [ - "bzz-raw://6c9d789e1e106682d4ee38523b8b8af1b02903aba1079e5dc2ec31ecf709f96a", - "dweb:/ipfs/QmSuGiTD8dPDXBLU4B3EoJK2zyQz3MQ9GKYiWzPyJnasRb" + "bzz-raw://917f42c979b5f2c9bad3cd2c5d34f8caec92282536e6f938e7e20dd1925c4843", + "dweb:/ipfs/QmYmTcZ3oEDWPUnCy6BfrpRMMeMyhe7gF423HbNSPatXs5" ], "license": "AGPL-3.0-or-later" }, "test/Utility.sol": { - "keccak256": "0xcea126c8754daffe443e2328ce2424b7b3dcafec7f3bb73c1f85c1502849552f", + "keccak256": "0x99dbec5203c841f8f092ac42644aa9e24eb927767826dcdf06addc5d5cbea135", "urls": [ - "bzz-raw://386bb899985ba398a7e34cc5a15c99c73c3a55b4d40356aa01f1147a8b377775", - "dweb:/ipfs/QmSQE7R4iNQhVyNSWj9Gs839udCrTm2EiuvezJLuwS7vds" + "bzz-raw://ecd75e3b538d0eb4404ee763ae474c9e4e64cf1e0804795a6787cedef3c0eeda", + "dweb:/ipfs/QmTwdFYFVDgVZpg3ebGcVr9vF5ffvcZtLzsdJnkRChxL7s" ], "license": "AGPL-3.0-or-later" } @@ -228,19 +228,19 @@ }, "ast": { "absolutePath": "test/Utility.sol", - "id": 27933, + "id": 32081, "exportedSymbols": { "Actor": [ - 27385 + 30379 ], "DSTest": [ 1786 ], "Hevm": [ - 27404 + 31549 ], "IERC20": [ - 26425 + 29158 ], "StdAssertions": [ 2708 @@ -264,10 +264,10 @@ 1843 ], "User": [ - 27412 + 31557 ], "Utility": [ - 27932 + 32080 ], "Vm": [ 9352 @@ -292,12 +292,12 @@ ] }, "nodeType": "SourceUnit", - "src": "47:6209:21", + "src": "47:6283:30", "nodes": [ { - "id": 27387, + "id": 31532, "nodeType": "PragmaDirective", - "src": "47:23:21", + "src": "47:23:30", "nodes": [], "literals": [ "solidity", @@ -307,60 +307,60 @@ ] }, { - "id": 27388, + "id": 31533, "nodeType": "ImportDirective", - "src": "74:32:21", + "src": "74:32:30", "nodes": [], "absolutePath": "src/users/Actor.sol", "file": "../src/users/Actor.sol", "nameLocation": "-1:-1:-1", - "scope": 27933, - "sourceUnit": 27386, + "scope": 32081, + "sourceUnit": 30380, "symbolAliases": [], "unitAlias": "" }, { - "id": 27389, + "id": 31534, "nodeType": "ImportDirective", - "src": "110:39:21", + "src": "110:39:30", "nodes": [], "absolutePath": "lib/forge-std/src/Test.sol", "file": "../lib/forge-std/src/Test.sol", "nameLocation": "-1:-1:-1", - "scope": 27933, + "scope": 32081, "sourceUnit": 8196, "symbolAliases": [], "unitAlias": "" }, { - "id": 27404, + "id": 31549, "nodeType": "ContractDefinition", - "src": "153:112:21", + "src": "153:112:30", "nodes": [ { - "id": 27394, + "id": 31539, "nodeType": "FunctionDefinition", - "src": "175:32:21", + "src": "175:32:30", "nodes": [], "functionSelector": "e5d6bf02", "implemented": false, "kind": "function", "modifiers": [], "name": "warp", - "nameLocation": "184:4:21", + "nameLocation": "184:4:30", "parameters": { - "id": 27392, + "id": 31537, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27391, + "id": 31536, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27394, - "src": "189:7:21", + "scope": 31539, + "src": "189:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -368,10 +368,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27390, + "id": 31535, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "189:7:21", + "src": "189:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -380,43 +380,43 @@ "visibility": "internal" } ], - "src": "188:9:21" + "src": "188:9:30" }, "returnParameters": { - "id": 27393, + "id": 31538, "nodeType": "ParameterList", "parameters": [], - "src": "206:0:21" + "src": "206:0:30" }, - "scope": 27404, + "scope": 31549, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 27403, + "id": 31548, "nodeType": "FunctionDefinition", - "src": "213:49:21", + "src": "213:49:30", "nodes": [], "functionSelector": "70ca10bb", "implemented": false, "kind": "function", "modifiers": [], "name": "store", - "nameLocation": "222:5:21", + "nameLocation": "222:5:30", "parameters": { - "id": 27401, + "id": 31546, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27396, + "id": 31541, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27403, - "src": "228:7:21", + "scope": 31548, + "src": "228:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -424,10 +424,10 @@ "typeString": "address" }, "typeName": { - "id": 27395, + "id": 31540, "name": "address", "nodeType": "ElementaryTypeName", - "src": "228:7:21", + "src": "228:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -438,13 +438,13 @@ }, { "constant": false, - "id": 27398, + "id": 31543, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27403, - "src": "236:7:21", + "scope": 31548, + "src": "236:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -452,10 +452,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 27397, + "id": 31542, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "236:7:21", + "src": "236:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -465,13 +465,13 @@ }, { "constant": false, - "id": 27400, + "id": 31545, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27403, - "src": "244:7:21", + "scope": 31548, + "src": "244:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -479,10 +479,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 27399, + "id": 31544, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "244:7:21", + "src": "244:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -491,15 +491,15 @@ "visibility": "internal" } ], - "src": "227:25:21" + "src": "227:25:30" }, "returnParameters": { - "id": 27402, + "id": 31547, "nodeType": "ParameterList", "parameters": [], - "src": "261:0:21" + "src": "261:0:30" }, - "scope": 27404, + "scope": 31549, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -512,42 +512,42 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 27404 + 31549 ], "name": "Hevm", - "nameLocation": "163:4:21", - "scope": 27933, + "nameLocation": "163:4:30", + "scope": 32081, "usedErrors": [] }, { - "id": 27412, + "id": 31557, "nodeType": "ContractDefinition", - "src": "269:69:21", + "src": "269:69:30", "nodes": [ { - "id": 27411, + "id": 31556, "nodeType": "FunctionDefinition", - "src": "291:44:21", + "src": "291:44:30", "nodes": [], "functionSelector": "095ea7b3", "implemented": false, "kind": "function", "modifiers": [], "name": "approve", - "nameLocation": "300:7:21", + "nameLocation": "300:7:30", "parameters": { - "id": 27409, + "id": 31554, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27406, + "id": 31551, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27411, - "src": "308:7:21", + "scope": 31556, + "src": "308:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -555,10 +555,10 @@ "typeString": "address" }, "typeName": { - "id": 27405, + "id": 31550, "name": "address", "nodeType": "ElementaryTypeName", - "src": "308:7:21", + "src": "308:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -569,13 +569,13 @@ }, { "constant": false, - "id": 27408, + "id": 31553, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27411, - "src": "317:7:21", + "scope": 31556, + "src": "317:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -583,10 +583,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27407, + "id": 31552, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "317:7:21", + "src": "317:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -595,15 +595,15 @@ "visibility": "internal" } ], - "src": "307:18:21" + "src": "307:18:30" }, "returnParameters": { - "id": 27410, + "id": 31555, "nodeType": "ParameterList", "parameters": [], - "src": "334:0:21" + "src": "334:0:30" }, - "scope": 27412, + "scope": 31557, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -616,180 +616,180 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 27412 + 31557 ], "name": "User", - "nameLocation": "279:4:21", - "scope": 27933, + "nameLocation": "279:4:30", + "scope": 32081, "usedErrors": [] }, { - "id": 27932, + "id": 32080, "nodeType": "ContractDefinition", - "src": "449:5807:21", + "src": "449:5881:30", "nodes": [ { - "id": 27417, + "id": 31562, "nodeType": "VariableDeclaration", - "src": "485:9:21", + "src": "485:9:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "hevm", - "nameLocation": "490:4:21", - "scope": 27932, + "nameLocation": "490:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" }, "typeName": { - "id": 27416, + "id": 31561, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27415, + "id": 31560, "name": "Hevm", "nameLocations": [ - "485:4:21" + "485:4:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27404, - "src": "485:4:21" + "referencedDeclaration": 31549, + "src": "485:4:30" }, - "referencedDeclaration": 27404, - "src": "485:4:21", + "referencedDeclaration": 31549, + "src": "485:4:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, "visibility": "internal" }, { - "id": 27420, + "id": 31565, "nodeType": "VariableDeclaration", - "src": "596:10:21", + "src": "596:10:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "joe", - "nameLocation": "603:3:21", - "scope": 27932, + "nameLocation": "603:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" }, "typeName": { - "id": 27419, + "id": 31564, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27418, + "id": 31563, "name": "Actor", "nameLocations": [ - "596:5:21" + "596:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "596:5:21" + "referencedDeclaration": 30379, + "src": "596:5:30" }, - "referencedDeclaration": 27385, - "src": "596:5:21", + "referencedDeclaration": 30379, + "src": "596:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, "visibility": "internal" }, { - "id": 27423, + "id": 31568, "nodeType": "VariableDeclaration", - "src": "625:10:21", + "src": "625:10:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "dev", - "nameLocation": "632:3:21", - "scope": 27932, + "nameLocation": "632:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" }, "typeName": { - "id": 27422, + "id": 31567, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27421, + "id": 31566, "name": "Actor", "nameLocations": [ - "625:5:21" + "625:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "625:5:21" + "referencedDeclaration": 30379, + "src": "625:5:30" }, - "referencedDeclaration": 27385, - "src": "625:5:21", + "referencedDeclaration": 30379, + "src": "625:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, "visibility": "internal" }, { - "id": 27426, + "id": 31571, "nodeType": "VariableDeclaration", - "src": "651:10:21", + "src": "651:10:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "jon", - "nameLocation": "658:3:21", - "scope": 27932, + "nameLocation": "658:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" }, "typeName": { - "id": 27425, + "id": 31570, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27424, + "id": 31569, "name": "Actor", "nameLocations": [ - "651:5:21" + "651:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "651:5:21" + "referencedDeclaration": 30379, + "src": "651:5:30" }, - "referencedDeclaration": 27385, - "src": "651:5:21", + "referencedDeclaration": 30379, + "src": "651:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, "visibility": "internal" }, { - "id": 27429, + "id": 31574, "nodeType": "VariableDeclaration", - "src": "815:67:21", + "src": "815:67:30", "nodes": [], "constant": true, "mutability": "constant", "name": "USDC", - "nameLocation": "832:4:21", - "scope": 27932, + "nameLocation": "832:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -797,10 +797,10 @@ "typeString": "address" }, "typeName": { - "id": 27427, + "id": 31572, "name": "address", "nodeType": "ElementaryTypeName", - "src": "815:7:21", + "src": "815:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -809,14 +809,14 @@ }, "value": { "hexValue": "307841306238363939316336323138623336633164313944346132653945623063453336303665423438", - "id": 27428, + "id": 31573, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "840:42:21", + "src": "840:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -826,15 +826,15 @@ "visibility": "internal" }, { - "id": 27432, + "id": 31577, "nodeType": "VariableDeclaration", - "src": "889:67:21", + "src": "889:67:30", "nodes": [], "constant": true, "mutability": "constant", "name": "DAI", - "nameLocation": "906:3:21", - "scope": 27932, + "nameLocation": "906:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -842,10 +842,10 @@ "typeString": "address" }, "typeName": { - "id": 27430, + "id": 31575, "name": "address", "nodeType": "ElementaryTypeName", - "src": "889:7:21", + "src": "889:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -854,14 +854,14 @@ }, "value": { "hexValue": "307836423137353437344538393039344334344461393862393534456564654143343935323731643046", - "id": 27431, + "id": 31576, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "914:42:21", + "src": "914:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -871,15 +871,15 @@ "visibility": "internal" }, { - "id": 27435, + "id": 31580, "nodeType": "VariableDeclaration", - "src": "963:67:21", + "src": "963:67:30", "nodes": [], "constant": true, "mutability": "constant", "name": "WETH", - "nameLocation": "980:4:21", - "scope": 27932, + "nameLocation": "980:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -887,10 +887,10 @@ "typeString": "address" }, "typeName": { - "id": 27433, + "id": 31578, "name": "address", "nodeType": "ElementaryTypeName", - "src": "963:7:21", + "src": "963:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -899,14 +899,14 @@ }, "value": { "hexValue": "307843303261614133396232323346453844304130653543344632376541443930383343373536436332", - "id": 27434, + "id": 31579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "988:42:21", + "src": "988:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -916,15 +916,15 @@ "visibility": "internal" }, { - "id": 27438, + "id": 31583, "nodeType": "VariableDeclaration", - "src": "1037:67:21", + "src": "1037:67:30", "nodes": [], "constant": true, "mutability": "constant", "name": "WBTC", - "nameLocation": "1054:4:21", - "scope": 27932, + "nameLocation": "1054:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -932,10 +932,10 @@ "typeString": "address" }, "typeName": { - "id": 27436, + "id": 31581, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1037:7:21", + "src": "1037:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -944,14 +944,14 @@ }, "value": { "hexValue": "307832323630464143354535353432613737334161343466424366654466374331393362633243353939", - "id": 27437, + "id": 31582, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1062:42:21", + "src": "1062:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -961,50 +961,95 @@ "visibility": "internal" }, { - "id": 27444, + "id": 31586, "nodeType": "VariableDeclaration", - "src": "1113:35:21", + "src": "1111:67:30", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "FRAX", + "nameLocation": "1128:4:30", + "scope": 32080, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 31584, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1111:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "hexValue": "307838353364393535614345663832324462303538656238353035393131454437374631373562393965", + "id": 31585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1136:42:30", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0x853d955aCEf822Db058eb8505911ED77F175b99e" + }, + "visibility": "internal" + }, + { + "id": 31592, + "nodeType": "VariableDeclaration", + "src": "1187:35:30", "nodes": [], "constant": true, "mutability": "constant", "name": "usdc", - "nameLocation": "1129:4:21", - "scope": 27932, + "nameLocation": "1203:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" }, "typeName": { - "id": 27440, + "id": 31588, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27439, + "id": 31587, "name": "IERC20", "nameLocations": [ - "1113:6:21" + "1187:6:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26425, - "src": "1113:6:21" + "referencedDeclaration": 29158, + "src": "1187:6:30" }, - "referencedDeclaration": 26425, - "src": "1113:6:21", + "referencedDeclaration": 29158, + "src": "1187:6:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "value": { "arguments": [ { - "id": 27442, + "id": 31590, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27429, - "src": "1143:4:21", + "referencedDeclaration": 31574, + "src": "1217:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1018,18 +1063,18 @@ "typeString": "address" } ], - "id": 27441, + "id": 31589, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "1136:6:21", + "referencedDeclaration": 29158, + "src": "1210:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27443, + "id": 31591, "isConstant": false, "isLValue": false, "isPure": true, @@ -1038,60 +1083,60 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1136:12:21", + "src": "1210:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "visibility": "internal" }, { - "id": 27450, + "id": 31598, "nodeType": "VariableDeclaration", - "src": "1155:34:21", + "src": "1229:34:30", "nodes": [], "constant": true, "mutability": "constant", "name": "dai", - "nameLocation": "1171:3:21", - "scope": 27932, + "nameLocation": "1245:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" }, "typeName": { - "id": 27446, + "id": 31594, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27445, + "id": 31593, "name": "IERC20", "nameLocations": [ - "1155:6:21" + "1229:6:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26425, - "src": "1155:6:21" + "referencedDeclaration": 29158, + "src": "1229:6:30" }, - "referencedDeclaration": 26425, - "src": "1155:6:21", + "referencedDeclaration": 29158, + "src": "1229:6:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "value": { "arguments": [ { - "id": 27448, + "id": 31596, "name": "DAI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27432, - "src": "1185:3:21", + "referencedDeclaration": 31577, + "src": "1259:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1105,18 +1150,18 @@ "typeString": "address" } ], - "id": 27447, + "id": 31595, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "1178:6:21", + "referencedDeclaration": 29158, + "src": "1252:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27449, + "id": 31597, "isConstant": false, "isLValue": false, "isPure": true, @@ -1125,60 +1170,60 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1178:11:21", + "src": "1252:11:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "visibility": "internal" }, { - "id": 27456, + "id": 31604, "nodeType": "VariableDeclaration", - "src": "1196:35:21", + "src": "1270:35:30", "nodes": [], "constant": true, "mutability": "constant", "name": "weth", - "nameLocation": "1212:4:21", - "scope": 27932, + "nameLocation": "1286:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" }, "typeName": { - "id": 27452, + "id": 31600, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27451, + "id": 31599, "name": "IERC20", "nameLocations": [ - "1196:6:21" + "1270:6:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26425, - "src": "1196:6:21" + "referencedDeclaration": 29158, + "src": "1270:6:30" }, - "referencedDeclaration": 26425, - "src": "1196:6:21", + "referencedDeclaration": 29158, + "src": "1270:6:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "value": { "arguments": [ { - "id": 27454, + "id": 31602, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27435, - "src": "1226:4:21", + "referencedDeclaration": 31580, + "src": "1300:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1192,18 +1237,18 @@ "typeString": "address" } ], - "id": 27453, + "id": 31601, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "1219:6:21", + "referencedDeclaration": 29158, + "src": "1293:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27455, + "id": 31603, "isConstant": false, "isLValue": false, "isPure": true, @@ -1212,60 +1257,60 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1219:12:21", + "src": "1293:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "visibility": "internal" }, { - "id": 27462, + "id": 31610, "nodeType": "VariableDeclaration", - "src": "1238:35:21", + "src": "1312:35:30", "nodes": [], "constant": true, "mutability": "constant", "name": "wbtc", - "nameLocation": "1254:4:21", - "scope": 27932, + "nameLocation": "1328:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" }, "typeName": { - "id": 27458, + "id": 31606, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27457, + "id": 31605, "name": "IERC20", "nameLocations": [ - "1238:6:21" + "1312:6:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26425, - "src": "1238:6:21" + "referencedDeclaration": 29158, + "src": "1312:6:30" }, - "referencedDeclaration": 26425, - "src": "1238:6:21", + "referencedDeclaration": 29158, + "src": "1312:6:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "value": { "arguments": [ { - "id": 27460, + "id": 31608, "name": "WBTC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27438, - "src": "1268:4:21", + "referencedDeclaration": 31583, + "src": "1342:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1279,18 +1324,18 @@ "typeString": "address" } ], - "id": 27459, + "id": 31607, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "1261:6:21", + "referencedDeclaration": 29158, + "src": "1335:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27461, + "id": 31609, "isConstant": false, "isLValue": false, "isPure": true, @@ -1299,25 +1344,25 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1261:12:21", + "src": "1335:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "visibility": "internal" }, { - "id": 27465, + "id": 31613, "nodeType": "VariableDeclaration", - "src": "1282:82:21", + "src": "1356:82:30", "nodes": [], "constant": true, "mutability": "constant", "name": "UNISWAP_V2_ROUTER_02", - "nameLocation": "1299:20:21", - "scope": 27932, + "nameLocation": "1373:20:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1325,10 +1370,10 @@ "typeString": "address" }, "typeName": { - "id": 27463, + "id": 31611, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1282:7:21", + "src": "1356:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1337,14 +1382,14 @@ }, "value": { "hexValue": "307837613235306435363330423463463533393733396446324335644163623463363539463234383844", - "id": 27464, + "id": 31612, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1322:42:21", + "src": "1396:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1354,15 +1399,15 @@ "visibility": "internal" }, { - "id": 27468, + "id": 31616, "nodeType": "VariableDeclaration", - "src": "1392:82:21", + "src": "1466:82:30", "nodes": [], "constant": true, "mutability": "constant", "name": "UNISWAP_V2_FACTORY", - "nameLocation": "1409:18:21", - "scope": 27932, + "nameLocation": "1483:18:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1370,10 +1415,10 @@ "typeString": "address" }, "typeName": { - "id": 27466, + "id": 31614, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1392:7:21", + "src": "1466:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1382,14 +1427,14 @@ }, "value": { "hexValue": "307835433639624565373031656638313461324236613345444434423136353243423963633561413666", - "id": 27467, + "id": 31615, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1432:42:21", + "src": "1506:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1399,16 +1444,16 @@ "visibility": "internal" }, { - "id": 27471, + "id": 31619, "nodeType": "VariableDeclaration", - "src": "1581:36:21", + "src": "1655:36:30", "nodes": [], "constant": true, "functionSelector": "e70dd6cf", "mutability": "constant", "name": "CL_FACTORY", - "nameLocation": "1603:10:21", - "scope": 27932, + "nameLocation": "1677:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1416,10 +1461,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27469, + "id": 31617, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1581:5:21", + "src": "1655:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1427,14 +1472,14 @@ }, "value": { "hexValue": "30", - "id": 27470, + "id": 31618, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1616:1:21", + "src": "1690:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1444,16 +1489,16 @@ "visibility": "public" }, { - "id": 27474, + "id": 31622, "nodeType": "VariableDeclaration", - "src": "1671:36:21", + "src": "1745:36:30", "nodes": [], "constant": true, "functionSelector": "174a5be4", "mutability": "constant", "name": "DL_FACTORY", - "nameLocation": "1693:10:21", - "scope": 27932, + "nameLocation": "1767:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1461,10 +1506,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27472, + "id": 31620, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1671:5:21", + "src": "1745:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1472,14 +1517,14 @@ }, "value": { "hexValue": "31", - "id": 27473, + "id": 31621, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1706:1:21", + "src": "1780:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -1489,16 +1534,16 @@ "visibility": "public" }, { - "id": 27477, + "id": 31625, "nodeType": "VariableDeclaration", - "src": "1755:36:21", + "src": "1829:36:30", "nodes": [], "constant": true, "functionSelector": "38505fb0", "mutability": "constant", "name": "FL_FACTORY", - "nameLocation": "1777:10:21", - "scope": 27932, + "nameLocation": "1851:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1506,10 +1551,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27475, + "id": 31623, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1755:5:21", + "src": "1829:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1517,14 +1562,14 @@ }, "value": { "hexValue": "32", - "id": 27476, + "id": 31624, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1790:1:21", + "src": "1864:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -1534,16 +1579,16 @@ "visibility": "public" }, { - "id": 27480, + "id": 31628, "nodeType": "VariableDeclaration", - "src": "1842:36:21", + "src": "1916:36:30", "nodes": [], "constant": true, "functionSelector": "c5ba73ed", "mutability": "constant", "name": "LL_FACTORY", - "nameLocation": "1864:10:21", - "scope": 27932, + "nameLocation": "1938:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1551,10 +1596,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27478, + "id": 31626, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1842:5:21", + "src": "1916:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1562,14 +1607,14 @@ }, "value": { "hexValue": "33", - "id": 27479, + "id": 31627, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1877:1:21", + "src": "1951:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" @@ -1579,16 +1624,16 @@ "visibility": "public" }, { - "id": 27483, + "id": 31631, "nodeType": "VariableDeclaration", - "src": "1931:36:21", + "src": "2005:36:30", "nodes": [], "constant": true, "functionSelector": "9f71f14a", "mutability": "constant", "name": "SL_FACTORY", - "nameLocation": "1953:10:21", - "scope": 27932, + "nameLocation": "2027:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1596,10 +1641,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27481, + "id": 31629, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1931:5:21", + "src": "2005:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1607,14 +1652,14 @@ }, "value": { "hexValue": "34", - "id": 27482, + "id": 31630, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1966:1:21", + "src": "2040:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" @@ -1624,16 +1669,16 @@ "visibility": "public" }, { - "id": 27486, + "id": 31634, "nodeType": "VariableDeclaration", - "src": "2018:45:21", + "src": "2092:45:30", "nodes": [], "constant": true, "functionSelector": "8c38922f", "mutability": "constant", "name": "INTEREST_CALC_TYPE", - "nameLocation": "2040:18:21", - "scope": 27932, + "nameLocation": "2114:18:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1641,10 +1686,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27484, + "id": 31632, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2018:5:21", + "src": "2092:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1652,14 +1697,14 @@ }, "value": { "hexValue": "3130", - "id": 27485, + "id": 31633, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2061:2:21", + "src": "2135:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -1669,16 +1714,16 @@ "visibility": "public" }, { - "id": 27489, + "id": 31637, "nodeType": "VariableDeclaration", - "src": "2104:45:21", + "src": "2178:45:30", "nodes": [], "constant": true, "functionSelector": "3493f4ca", "mutability": "constant", "name": "LATEFEE_CALC_TYPE", - "nameLocation": "2126:17:21", - "scope": 27932, + "nameLocation": "2200:17:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1686,10 +1731,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27487, + "id": 31635, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2104:5:21", + "src": "2178:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1697,14 +1742,14 @@ }, "value": { "hexValue": "3131", - "id": 27488, + "id": 31636, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2147:2:21", + "src": "2221:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_11_by_1", "typeString": "int_const 11" @@ -1714,16 +1759,16 @@ "visibility": "public" }, { - "id": 27492, + "id": 31640, "nodeType": "VariableDeclaration", - "src": "2188:45:21", + "src": "2262:45:30", "nodes": [], "constant": true, "functionSelector": "7a8fe3c0", "mutability": "constant", "name": "PREMIUM_CALC_TYPE", - "nameLocation": "2210:17:21", - "scope": 27932, + "nameLocation": "2284:17:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1731,10 +1776,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27490, + "id": 31638, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2188:5:21", + "src": "2262:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1742,14 +1787,14 @@ }, "value": { "hexValue": "3132", - "id": 27491, + "id": 31639, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2231:2:21", + "src": "2305:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", "typeString": "int_const 12" @@ -1759,15 +1804,15 @@ "visibility": "public" }, { - "id": 27497, + "id": 31645, "nodeType": "VariableDeclaration", - "src": "2274:30:21", + "src": "2348:30:30", "nodes": [], "constant": true, "mutability": "constant", "name": "USD", - "nameLocation": "2291:3:21", - "scope": 27932, + "nameLocation": "2365:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1775,10 +1820,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27493, + "id": 31641, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2274:7:21", + "src": "2348:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1789,21 +1834,21 @@ "typeIdentifier": "t_rational_1000000_by_1", "typeString": "int_const 1000000" }, - "id": 27496, + "id": 31644, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27494, + "id": 31642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2297:2:21", + "src": "2371:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -1814,21 +1859,21 @@ "operator": "**", "rightExpression": { "hexValue": "36", - "id": 27495, + "id": 31643, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2303:1:21", + "src": "2377:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", "typeString": "int_const 6" }, "value": "6" }, - "src": "2297:7:21", + "src": "2371:7:30", "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", "typeString": "int_const 1000000" @@ -1837,15 +1882,15 @@ "visibility": "internal" }, { - "id": 27502, + "id": 31650, "nodeType": "VariableDeclaration", - "src": "2339:30:21", + "src": "2413:30:30", "nodes": [], "constant": true, "mutability": "constant", "name": "BTC", - "nameLocation": "2356:3:21", - "scope": 27932, + "nameLocation": "2430:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1853,10 +1898,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27498, + "id": 31646, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2339:7:21", + "src": "2413:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1867,21 +1912,21 @@ "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" }, - "id": 27501, + "id": 31649, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27499, + "id": 31647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2362:2:21", + "src": "2436:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -1892,21 +1937,21 @@ "operator": "**", "rightExpression": { "hexValue": "38", - "id": 27500, + "id": 31648, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2368:1:21", + "src": "2442:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "2362:7:21", + "src": "2436:7:30", "typeDescriptions": { "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" @@ -1915,15 +1960,15 @@ "visibility": "internal" }, { - "id": 27507, + "id": 31655, "nodeType": "VariableDeclaration", - "src": "2404:31:21", + "src": "2478:31:30", "nodes": [], "constant": true, "mutability": "constant", "name": "WAD", - "nameLocation": "2421:3:21", - "scope": 27932, + "nameLocation": "2495:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1931,10 +1976,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27503, + "id": 31651, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2404:7:21", + "src": "2478:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1945,21 +1990,21 @@ "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" }, - "id": 27506, + "id": 31654, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27504, + "id": 31652, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2427:2:21", + "src": "2501:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -1970,21 +2015,21 @@ "operator": "**", "rightExpression": { "hexValue": "3138", - "id": 27505, + "id": 31653, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2433:2:21", + "src": "2507:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, - "src": "2427:8:21", + "src": "2501:8:30", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" @@ -1993,15 +2038,15 @@ "visibility": "internal" }, { - "id": 27512, + "id": 31660, "nodeType": "VariableDeclaration", - "src": "2442:31:21", + "src": "2516:31:30", "nodes": [], "constant": true, "mutability": "constant", "name": "RAY", - "nameLocation": "2459:3:21", - "scope": 27932, + "nameLocation": "2533:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2009,10 +2054,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27508, + "id": 31656, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2442:7:21", + "src": "2516:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2023,21 +2068,21 @@ "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" }, - "id": 27511, + "id": 31659, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27509, + "id": 31657, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2465:2:21", + "src": "2539:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -2048,21 +2093,21 @@ "operator": "**", "rightExpression": { "hexValue": "3237", - "id": 27510, + "id": 31658, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2471:2:21", + "src": "2545:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", "typeString": "int_const 27" }, "value": "27" }, - "src": "2465:8:21", + "src": "2539:8:30", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" @@ -2071,21 +2116,21 @@ "visibility": "internal" }, { - "id": 27519, + "id": 31667, "nodeType": "StructDefinition", - "src": "2557:167:21", + "src": "2631:167:30", "nodes": [], "canonicalName": "Utility.Token", "members": [ { "constant": false, - "id": 27514, + "id": 31662, "mutability": "mutable", "name": "addr", - "nameLocation": "2589:4:21", + "nameLocation": "2663:4:30", "nodeType": "VariableDeclaration", - "scope": 27519, - "src": "2581:12:21", + "scope": 31667, + "src": "2655:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2093,10 +2138,10 @@ "typeString": "address" }, "typeName": { - "id": 27513, + "id": 31661, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2581:7:21", + "src": "2655:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2107,13 +2152,13 @@ }, { "constant": false, - "id": 27516, + "id": 31664, "mutability": "mutable", "name": "slot", - "nameLocation": "2637:4:21", + "nameLocation": "2711:4:30", "nodeType": "VariableDeclaration", - "scope": 27519, - "src": "2629:12:21", + "scope": 31667, + "src": "2703:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2121,10 +2166,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27515, + "id": 31663, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2629:7:21", + "src": "2703:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2134,13 +2179,13 @@ }, { "constant": false, - "id": 27518, + "id": 31666, "mutability": "mutable", "name": "orcl", - "nameLocation": "2684:4:21", + "nameLocation": "2758:4:30", "nodeType": "VariableDeclaration", - "scope": 27519, - "src": "2676:12:21", + "scope": 31667, + "src": "2750:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2148,10 +2193,10 @@ "typeString": "address" }, "typeName": { - "id": 27517, + "id": 31665, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2676:7:21", + "src": "2750:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2162,61 +2207,61 @@ } ], "name": "Token", - "nameLocation": "2564:5:21", - "scope": 27932, + "nameLocation": "2638:5:30", + "scope": 32080, "visibility": "public" }, { - "id": 27524, + "id": 31672, "nodeType": "VariableDeclaration", - "src": "2733:33:21", + "src": "2807:33:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "tokens", - "nameLocation": "2760:6:21", - "scope": 27932, + "nameLocation": "2834:6:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token)" }, "typeName": { - "id": 27523, + "id": 31671, "keyType": { - "id": 27520, + "id": 31668, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2742:7:21", + "src": "2816:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "2733:26:21", + "src": "2807:26:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token)" }, "valueType": { - "id": 27522, + "id": 31670, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27521, + "id": 31669, "name": "Token", "nameLocations": [ - "2753:5:21" + "2827:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27519, - "src": "2753:5:21" + "referencedDeclaration": 31667, + "src": "2827:5:30" }, - "referencedDeclaration": 27519, - "src": "2753:5:21", + "referencedDeclaration": 31667, + "src": "2827:5:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage_ptr", + "typeIdentifier": "t_struct$_Token_$31667_storage_ptr", "typeString": "struct Utility.Token" } } @@ -2224,21 +2269,21 @@ "visibility": "internal" }, { - "id": 27529, + "id": 31677, "nodeType": "StructDefinition", - "src": "2775:68:21", + "src": "2849:68:30", "nodes": [], "canonicalName": "Utility.TestObj", "members": [ { "constant": false, - "id": 27526, + "id": 31674, "mutability": "mutable", "name": "pre", - "nameLocation": "2809:3:21", + "nameLocation": "2883:3:30", "nodeType": "VariableDeclaration", - "scope": 27529, - "src": "2801:11:21", + "scope": 31677, + "src": "2875:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2246,10 +2291,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27525, + "id": 31673, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2801:7:21", + "src": "2875:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2259,13 +2304,13 @@ }, { "constant": false, - "id": 27528, + "id": 31676, "mutability": "mutable", "name": "post", - "nameLocation": "2831:4:21", + "nameLocation": "2905:4:30", "nodeType": "VariableDeclaration", - "scope": 27529, - "src": "2823:12:21", + "scope": 31677, + "src": "2897:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2273,10 +2318,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27527, + "id": 31675, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2823:7:21", + "src": "2897:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2286,33 +2331,33 @@ } ], "name": "TestObj", - "nameLocation": "2782:7:21", - "scope": 27932, + "nameLocation": "2856:7:30", + "scope": 32080, "visibility": "public" }, { - "id": 27535, + "id": 31683, "nodeType": "EventDefinition", - "src": "2851:29:21", + "src": "2925:29:30", "nodes": [], "anonymous": false, "eventSelector": "3c5ad147104e56be34a9176a6692f7df8d2f4b29a5af06bc6b98970d329d6577", "name": "Debug", - "nameLocation": "2857:5:21", + "nameLocation": "2931:5:30", "parameters": { - "id": 27534, + "id": 31682, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27531, + "id": 31679, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27535, - "src": "2863:6:21", + "scope": 31683, + "src": "2937:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2320,10 +2365,10 @@ "typeString": "string" }, "typeName": { - "id": 27530, + "id": 31678, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2863:6:21", + "src": "2937:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2333,14 +2378,14 @@ }, { "constant": false, - "id": 27533, + "id": 31681, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27535, - "src": "2871:7:21", + "scope": 31683, + "src": "2945:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2348,10 +2393,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27532, + "id": 31680, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2871:7:21", + "src": "2945:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2360,32 +2405,32 @@ "visibility": "internal" } ], - "src": "2862:17:21" + "src": "2936:17:30" } }, { - "id": 27541, + "id": 31689, "nodeType": "EventDefinition", - "src": "2886:29:21", + "src": "2960:29:30", "nodes": [], "anonymous": false, "eventSelector": "14186b8ac9c91f14b0f16f9e886356157442bb899be26513dfe1d4d5929a5bac", "name": "Debug", - "nameLocation": "2892:5:21", + "nameLocation": "2966:5:30", "parameters": { - "id": 27540, + "id": 31688, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27537, + "id": 31685, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27541, - "src": "2898:6:21", + "scope": 31689, + "src": "2972:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2393,10 +2438,10 @@ "typeString": "string" }, "typeName": { - "id": 27536, + "id": 31684, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2898:6:21", + "src": "2972:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2406,14 +2451,14 @@ }, { "constant": false, - "id": 27539, + "id": 31687, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27541, - "src": "2906:7:21", + "scope": 31689, + "src": "2980:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2421,10 +2466,10 @@ "typeString": "address" }, "typeName": { - "id": 27538, + "id": 31686, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2906:7:21", + "src": "2980:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2434,32 +2479,32 @@ "visibility": "internal" } ], - "src": "2897:17:21" + "src": "2971:17:30" } }, { - "id": 27547, + "id": 31695, "nodeType": "EventDefinition", - "src": "2921:26:21", + "src": "2995:26:30", "nodes": [], "anonymous": false, "eventSelector": "d1401e4d321999a7547f3d989953912043b0f4ab8471cc7307695072f6ee9d83", "name": "Debug", - "nameLocation": "2927:5:21", + "nameLocation": "3001:5:30", "parameters": { - "id": 27546, + "id": 31694, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27543, + "id": 31691, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27547, - "src": "2933:6:21", + "scope": 31695, + "src": "3007:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2467,10 +2512,10 @@ "typeString": "string" }, "typeName": { - "id": 27542, + "id": 31690, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2933:6:21", + "src": "3007:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2480,14 +2525,14 @@ }, { "constant": false, - "id": 27545, + "id": 31693, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27547, - "src": "2941:4:21", + "scope": 31695, + "src": "3015:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2495,10 +2540,10 @@ "typeString": "bool" }, "typeName": { - "id": 27544, + "id": 31692, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2941:4:21", + "src": "3015:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2507,32 +2552,32 @@ "visibility": "internal" } ], - "src": "2932:14:21" + "src": "3006:14:30" } }, { - "id": 27553, + "id": 31701, "nodeType": "EventDefinition", - "src": "2953:28:21", + "src": "3027:28:30", "nodes": [], "anonymous": false, "eventSelector": "747eaa98d4c6787fb9ebfa7ba00179a57433dbd57fd28208b7a240d949164a09", "name": "Debug", - "nameLocation": "2959:5:21", + "nameLocation": "3033:5:30", "parameters": { - "id": 27552, + "id": 31700, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27549, + "id": 31697, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27553, - "src": "2965:6:21", + "scope": 31701, + "src": "3039:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2540,10 +2585,10 @@ "typeString": "string" }, "typeName": { - "id": 27548, + "id": 31696, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2965:6:21", + "src": "3039:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2553,14 +2598,14 @@ }, { "constant": false, - "id": 27551, + "id": 31699, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27553, - "src": "2973:6:21", + "scope": 31701, + "src": "3047:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2568,10 +2613,10 @@ "typeString": "string" }, "typeName": { - "id": 27550, + "id": 31698, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2973:6:21", + "src": "3047:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2580,36 +2625,36 @@ "visibility": "internal" } ], - "src": "2964:16:21" + "src": "3038:16:30" } }, { - "id": 27577, + "id": 31725, "nodeType": "FunctionDefinition", - "src": "2989:103:21", + "src": "3063:103:30", "nodes": [], "body": { - "id": 27576, + "id": 31724, "nodeType": "Block", - "src": "3010:82:21", + "src": "3084:82:30", "nodes": [], "statements": [ { "expression": { - "id": 27574, + "id": 31722, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 27556, + "id": 31704, "name": "hevm", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27417, - "src": "3012:4:21", + "referencedDeclaration": 31562, + "src": "3086:4:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, @@ -2629,14 +2674,14 @@ "arguments": [ { "hexValue": "6865766d20636865617420636f6465", - "id": 27567, + "id": 31715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3066:17:21", + "src": "3140:17:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d", "typeString": "literal_string \"hevm cheat code\"" @@ -2651,18 +2696,18 @@ "typeString": "literal_string \"hevm cheat code\"" } ], - "id": 27566, + "id": 31714, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "3056:9:21", + "src": "3130:9:30", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 27568, + "id": 31716, "isConstant": false, "isLValue": false, "isPure": true, @@ -2671,7 +2716,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3056:28:21", + "src": "3130:28:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2686,26 +2731,26 @@ "typeString": "bytes32" } ], - "id": 27565, + "id": 31713, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3048:7:21", + "src": "3122:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 27564, + "id": 31712, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3048:7:21", + "src": "3122:7:30", "typeDescriptions": {} } }, - "id": 27569, + "id": 31717, "isConstant": false, "isLValue": false, "isPure": true, @@ -2714,7 +2759,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3048:37:21", + "src": "3122:37:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2729,26 +2774,26 @@ "typeString": "uint256" } ], - "id": 27563, + "id": 31711, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3040:7:21", + "src": "3114:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint160_$", "typeString": "type(uint160)" }, "typeName": { - "id": 27562, + "id": 31710, "name": "uint160", "nodeType": "ElementaryTypeName", - "src": "3040:7:21", + "src": "3114:7:30", "typeDescriptions": {} } }, - "id": 27570, + "id": 31718, "isConstant": false, "isLValue": false, "isPure": true, @@ -2757,7 +2802,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3040:46:21", + "src": "3114:46:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint160", @@ -2772,26 +2817,26 @@ "typeString": "uint160" } ], - "id": 27561, + "id": 31709, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3032:7:21", + "src": "3106:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 27560, + "id": 31708, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "3032:7:21", + "src": "3106:7:30", "typeDescriptions": {} } }, - "id": 27571, + "id": 31719, "isConstant": false, "isLValue": false, "isPure": true, @@ -2800,7 +2845,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3032:55:21", + "src": "3106:55:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -2815,26 +2860,26 @@ "typeString": "bytes20" } ], - "id": 27559, + "id": 31707, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3024:7:21", + "src": "3098:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27558, + "id": 31706, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3024:7:21", + "src": "3098:7:30", "typeDescriptions": {} } }, - "id": 27572, + "id": 31720, "isConstant": false, "isLValue": false, "isPure": true, @@ -2843,7 +2888,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3024:64:21", + "src": "3098:64:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2858,18 +2903,18 @@ "typeString": "address" } ], - "id": 27557, + "id": 31705, "name": "Hevm", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27404, - "src": "3019:4:21", + "referencedDeclaration": 31549, + "src": "3093:4:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Hevm_$27404_$", + "typeIdentifier": "t_type$_t_contract$_Hevm_$31549_$", "typeString": "type(contract Hevm)" } }, - "id": 27573, + "id": 31721, "isConstant": false, "isLValue": false, "isPure": true, @@ -2878,22 +2923,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3019:70:21", + "src": "3093:70:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, - "src": "3012:77:21", + "src": "3086:77:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, - "id": 27575, + "id": 31723, "nodeType": "ExpressionStatement", - "src": "3012:77:21" + "src": "3086:77:30" } ] }, @@ -2903,49 +2948,49 @@ "name": "", "nameLocation": "-1:-1:-1", "parameters": { - "id": 27554, + "id": 31702, "nodeType": "ParameterList", "parameters": [], - "src": "3000:2:21" + "src": "3074:2:30" }, "returnParameters": { - "id": 27555, + "id": 31703, "nodeType": "ParameterList", "parameters": [], - "src": "3010:0:21" + "src": "3084:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27602, + "id": 31750, "nodeType": "FunctionDefinition", - "src": "3238:184:21", + "src": "3312:184:30", "nodes": [], "body": { - "id": 27601, + "id": 31749, "nodeType": "Block", - "src": "3269:153:21", + "src": "3343:153:30", "nodes": [], "statements": [ { "expression": { - "id": 27585, + "id": 31733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 27580, + "id": 31728, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27426, - "src": "3280:3:21", + "referencedDeclaration": 31571, + "src": "3354:3:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, @@ -2955,39 +3000,39 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 27583, + "id": 31731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3286:9:21", + "src": "3360:9:30", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$27385_$", + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$30379_$", "typeString": "function () returns (contract Actor)" }, "typeName": { - "id": 27582, + "id": 31730, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27581, + "id": 31729, "name": "Actor", "nameLocations": [ - "3290:5:21" + "3364:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "3290:5:21" + "referencedDeclaration": 30379, + "src": "3364:5:30" }, - "referencedDeclaration": 27385, - "src": "3290:5:21", + "referencedDeclaration": 30379, + "src": "3364:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } }, - "id": 27584, + "id": 31732, "isConstant": false, "isLValue": false, "isPure": false, @@ -2996,39 +3041,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3286:11:21", + "src": "3360:11:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "src": "3280:17:21", + "src": "3354:17:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 27586, + "id": 31734, "nodeType": "ExpressionStatement", - "src": "3280:17:21" + "src": "3354:17:30" }, { "expression": { - "id": 27592, + "id": 31740, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 27587, + "id": 31735, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27420, - "src": "3321:3:21", + "referencedDeclaration": 31565, + "src": "3395:3:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, @@ -3038,39 +3083,39 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 27590, + "id": 31738, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3327:9:21", + "src": "3401:9:30", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$27385_$", + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$30379_$", "typeString": "function () returns (contract Actor)" }, "typeName": { - "id": 27589, + "id": 31737, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27588, + "id": 31736, "name": "Actor", "nameLocations": [ - "3331:5:21" + "3405:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "3331:5:21" + "referencedDeclaration": 30379, + "src": "3405:5:30" }, - "referencedDeclaration": 27385, - "src": "3331:5:21", + "referencedDeclaration": 30379, + "src": "3405:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } }, - "id": 27591, + "id": 31739, "isConstant": false, "isLValue": false, "isPure": false, @@ -3079,39 +3124,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3327:11:21", + "src": "3401:11:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "src": "3321:17:21", + "src": "3395:17:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 27593, + "id": 31741, "nodeType": "ExpressionStatement", - "src": "3321:17:21" + "src": "3395:17:30" }, { "expression": { - "id": 27599, + "id": 31747, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 27594, + "id": 31742, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27423, - "src": "3388:3:21", + "referencedDeclaration": 31568, + "src": "3462:3:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, @@ -3121,39 +3166,39 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 27597, + "id": 31745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3394:9:21", + "src": "3468:9:30", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$27385_$", + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$30379_$", "typeString": "function () returns (contract Actor)" }, "typeName": { - "id": 27596, + "id": 31744, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27595, + "id": 31743, "name": "Actor", "nameLocations": [ - "3398:5:21" + "3472:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "3398:5:21" + "referencedDeclaration": 30379, + "src": "3472:5:30" }, - "referencedDeclaration": 27385, - "src": "3398:5:21", + "referencedDeclaration": 30379, + "src": "3472:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } }, - "id": 27598, + "id": 31746, "isConstant": false, "isLValue": false, "isPure": false, @@ -3162,22 +3207,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3394:11:21", + "src": "3468:11:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "src": "3388:17:21", + "src": "3462:17:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 27600, + "id": 31748, "nodeType": "ExpressionStatement", - "src": "3388:17:21" + "src": "3462:17:30" } ] }, @@ -3186,38 +3231,38 @@ "kind": "function", "modifiers": [], "name": "createActors", - "nameLocation": "3247:12:21", + "nameLocation": "3321:12:30", "parameters": { - "id": 27578, + "id": 31726, "nodeType": "ParameterList", "parameters": [], - "src": "3259:2:21" + "src": "3333:2:30" }, "returnParameters": { - "id": 27579, + "id": 31727, "nodeType": "ParameterList", "parameters": [], - "src": "3269:0:21" + "src": "3343:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27683, + "id": 31831, "nodeType": "FunctionDefinition", - "src": "3546:551:21", + "src": "3620:551:30", "nodes": [], "body": { - "id": 27682, + "id": 31830, "nodeType": "Block", - "src": "3576:521:21", + "src": "3650:521:30", "nodes": [], "statements": [ { "expression": { - "id": 27610, + "id": 31758, "isConstant": false, "isLValue": false, "isPure": false, @@ -3225,28 +3270,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27605, + "id": 31753, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3589:6:21", + "referencedDeclaration": 31672, + "src": "3663:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27607, + "id": 31755, "indexExpression": { "hexValue": "55534443", - "id": 27606, + "id": 31754, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3596:6:21", + "src": "3670:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", "typeString": "literal_string \"USDC\"" @@ -3258,22 +3303,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3589:14:21", + "src": "3663:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27608, + "id": 31756, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3604:4:21", + "memberLocation": "3678:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "3589:19:21", + "referencedDeclaration": 31662, + "src": "3663:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3282,30 +3327,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 27609, + "id": 31757, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27429, - "src": "3611:4:21", + "referencedDeclaration": 31574, + "src": "3685:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3589:26:21", + "src": "3663:26:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27611, + "id": 31759, "nodeType": "ExpressionStatement", - "src": "3589:26:21" + "src": "3663:26:30" }, { "expression": { - "id": 27617, + "id": 31765, "isConstant": false, "isLValue": false, "isPure": false, @@ -3313,28 +3358,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27612, + "id": 31760, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3626:6:21", + "referencedDeclaration": 31672, + "src": "3700:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27614, + "id": 31762, "indexExpression": { "hexValue": "55534443", - "id": 27613, + "id": 31761, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3633:6:21", + "src": "3707:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", "typeString": "literal_string \"USDC\"" @@ -3346,22 +3391,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3626:14:21", + "src": "3700:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27615, + "id": 31763, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3641:4:21", + "memberLocation": "3715:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "3626:19:21", + "referencedDeclaration": 31664, + "src": "3700:19:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3371,33 +3416,33 @@ "operator": "=", "rightHandSide": { "hexValue": "39", - "id": 27616, + "id": 31764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3648:1:21", + "src": "3722:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_9_by_1", "typeString": "int_const 9" }, "value": "9" }, - "src": "3626:23:21", + "src": "3700:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27618, + "id": 31766, "nodeType": "ExpressionStatement", - "src": "3626:23:21" + "src": "3700:23:30" }, { "expression": { - "id": 27624, + "id": 31772, "isConstant": false, "isLValue": false, "isPure": false, @@ -3405,28 +3450,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27619, + "id": 31767, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3662:6:21", + "referencedDeclaration": 31672, + "src": "3736:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27621, + "id": 31769, "indexExpression": { "hexValue": "444149", - "id": 27620, + "id": 31768, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3669:5:21", + "src": "3743:5:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568", "typeString": "literal_string \"DAI\"" @@ -3438,22 +3483,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3662:13:21", + "src": "3736:13:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27622, + "id": 31770, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3676:4:21", + "memberLocation": "3750:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "3662:18:21", + "referencedDeclaration": 31662, + "src": "3736:18:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3462,30 +3507,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 27623, + "id": 31771, "name": "DAI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27432, - "src": "3683:3:21", + "referencedDeclaration": 31577, + "src": "3757:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3662:24:21", + "src": "3736:24:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27625, + "id": 31773, "nodeType": "ExpressionStatement", - "src": "3662:24:21" + "src": "3736:24:30" }, { "expression": { - "id": 27631, + "id": 31779, "isConstant": false, "isLValue": false, "isPure": false, @@ -3493,28 +3538,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27626, + "id": 31774, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3697:6:21", + "referencedDeclaration": 31672, + "src": "3771:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27628, + "id": 31776, "indexExpression": { "hexValue": "444149", - "id": 27627, + "id": 31775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3704:5:21", + "src": "3778:5:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568", "typeString": "literal_string \"DAI\"" @@ -3526,22 +3571,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3697:13:21", + "src": "3771:13:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27629, + "id": 31777, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3711:4:21", + "memberLocation": "3785:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "3697:18:21", + "referencedDeclaration": 31664, + "src": "3771:18:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3551,33 +3596,33 @@ "operator": "=", "rightHandSide": { "hexValue": "32", - "id": 27630, + "id": 31778, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3718:1:21", + "src": "3792:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "3697:22:21", + "src": "3771:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27632, + "id": 31780, "nodeType": "ExpressionStatement", - "src": "3697:22:21" + "src": "3771:22:30" }, { "expression": { - "id": 27638, + "id": 31786, "isConstant": false, "isLValue": false, "isPure": false, @@ -3585,28 +3630,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27633, + "id": 31781, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3730:6:21", + "referencedDeclaration": 31672, + "src": "3804:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27635, + "id": 31783, "indexExpression": { "hexValue": "444149", - "id": 27634, + "id": 31782, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3737:5:21", + "src": "3811:5:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568", "typeString": "literal_string \"DAI\"" @@ -3618,22 +3663,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3730:13:21", + "src": "3804:13:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27636, + "id": 31784, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3744:4:21", + "memberLocation": "3818:4:30", "memberName": "orcl", "nodeType": "MemberAccess", - "referencedDeclaration": 27518, - "src": "3730:18:21", + "referencedDeclaration": 31666, + "src": "3804:18:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3643,33 +3688,33 @@ "operator": "=", "rightHandSide": { "hexValue": "307841656430633338343032613564313964663645346330334634453244636544366532396331656539", - "id": 27637, + "id": 31785, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3751:42:21", + "src": "3825:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "value": "0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9" }, - "src": "3730:63:21", + "src": "3804:63:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27639, + "id": 31787, "nodeType": "ExpressionStatement", - "src": "3730:63:21" + "src": "3804:63:30" }, { "expression": { - "id": 27645, + "id": 31793, "isConstant": false, "isLValue": false, "isPure": false, @@ -3677,28 +3722,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27640, + "id": 31788, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3806:6:21", + "referencedDeclaration": 31672, + "src": "3880:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27642, + "id": 31790, "indexExpression": { "hexValue": "57455448", - "id": 27641, + "id": 31789, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3813:6:21", + "src": "3887:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8", "typeString": "literal_string \"WETH\"" @@ -3710,22 +3755,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3806:14:21", + "src": "3880:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27643, + "id": 31791, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3821:4:21", + "memberLocation": "3895:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "3806:19:21", + "referencedDeclaration": 31662, + "src": "3880:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3734,30 +3779,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 27644, + "id": 31792, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27435, - "src": "3828:4:21", + "referencedDeclaration": 31580, + "src": "3902:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3806:26:21", + "src": "3880:26:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27646, + "id": 31794, "nodeType": "ExpressionStatement", - "src": "3806:26:21" + "src": "3880:26:30" }, { "expression": { - "id": 27652, + "id": 31800, "isConstant": false, "isLValue": false, "isPure": false, @@ -3765,28 +3810,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27647, + "id": 31795, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3843:6:21", + "referencedDeclaration": 31672, + "src": "3917:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27649, + "id": 31797, "indexExpression": { "hexValue": "57455448", - "id": 27648, + "id": 31796, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3850:6:21", + "src": "3924:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8", "typeString": "literal_string \"WETH\"" @@ -3798,22 +3843,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3843:14:21", + "src": "3917:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27650, + "id": 31798, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3858:4:21", + "memberLocation": "3932:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "3843:19:21", + "referencedDeclaration": 31664, + "src": "3917:19:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3823,33 +3868,33 @@ "operator": "=", "rightHandSide": { "hexValue": "33", - "id": 27651, + "id": 31799, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3865:1:21", + "src": "3939:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, - "src": "3843:23:21", + "src": "3917:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27653, + "id": 31801, "nodeType": "ExpressionStatement", - "src": "3843:23:21" + "src": "3917:23:30" }, { "expression": { - "id": 27659, + "id": 31807, "isConstant": false, "isLValue": false, "isPure": false, @@ -3857,28 +3902,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27654, + "id": 31802, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3877:6:21", + "referencedDeclaration": 31672, + "src": "3951:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27656, + "id": 31804, "indexExpression": { "hexValue": "57455448", - "id": 27655, + "id": 31803, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3884:6:21", + "src": "3958:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8", "typeString": "literal_string \"WETH\"" @@ -3890,22 +3935,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3877:14:21", + "src": "3951:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27657, + "id": 31805, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3892:4:21", + "memberLocation": "3966:4:30", "memberName": "orcl", "nodeType": "MemberAccess", - "referencedDeclaration": 27518, - "src": "3877:19:21", + "referencedDeclaration": 31666, + "src": "3951:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3915,33 +3960,33 @@ "operator": "=", "rightHandSide": { "hexValue": "307835663465433344663963626434333731344645323734306635453336313631353563356238343139", - "id": 27658, + "id": 31806, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3899:42:21", + "src": "3973:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "value": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" }, - "src": "3877:64:21", + "src": "3951:64:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27660, + "id": 31808, "nodeType": "ExpressionStatement", - "src": "3877:64:21" + "src": "3951:64:30" }, { "expression": { - "id": 27666, + "id": 31814, "isConstant": false, "isLValue": false, "isPure": false, @@ -3949,28 +3994,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27661, + "id": 31809, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3954:6:21", + "referencedDeclaration": 31672, + "src": "4028:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27663, + "id": 31811, "indexExpression": { "hexValue": "57425443", - "id": 27662, + "id": 31810, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3961:6:21", + "src": "4035:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_98da2c5e4c6b1db946694570273b859a6e4083ccc8faa155edfc4c54eb3cfd73", "typeString": "literal_string \"WBTC\"" @@ -3982,22 +4027,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3954:14:21", + "src": "4028:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27664, + "id": 31812, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3969:4:21", + "memberLocation": "4043:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "3954:19:21", + "referencedDeclaration": 31662, + "src": "4028:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4006,30 +4051,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 27665, + "id": 31813, "name": "WBTC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27438, - "src": "3976:4:21", + "referencedDeclaration": 31583, + "src": "4050:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3954:26:21", + "src": "4028:26:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27667, + "id": 31815, "nodeType": "ExpressionStatement", - "src": "3954:26:21" + "src": "4028:26:30" }, { "expression": { - "id": 27673, + "id": 31821, "isConstant": false, "isLValue": false, "isPure": false, @@ -4037,28 +4082,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27668, + "id": 31816, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3991:6:21", + "referencedDeclaration": 31672, + "src": "4065:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27670, + "id": 31818, "indexExpression": { "hexValue": "57425443", - "id": 27669, + "id": 31817, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3998:6:21", + "src": "4072:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_98da2c5e4c6b1db946694570273b859a6e4083ccc8faa155edfc4c54eb3cfd73", "typeString": "literal_string \"WBTC\"" @@ -4070,22 +4115,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3991:14:21", + "src": "4065:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27671, + "id": 31819, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4006:4:21", + "memberLocation": "4080:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "3991:19:21", + "referencedDeclaration": 31664, + "src": "4065:19:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4095,33 +4140,33 @@ "operator": "=", "rightHandSide": { "hexValue": "30", - "id": 27672, + "id": 31820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4013:1:21", + "src": "4087:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3991:23:21", + "src": "4065:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27674, + "id": 31822, "nodeType": "ExpressionStatement", - "src": "3991:23:21" + "src": "4065:23:30" }, { "expression": { - "id": 27680, + "id": 31828, "isConstant": false, "isLValue": false, "isPure": false, @@ -4129,28 +4174,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27675, + "id": 31823, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "4025:6:21", + "referencedDeclaration": 31672, + "src": "4099:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27677, + "id": 31825, "indexExpression": { "hexValue": "57425443", - "id": 27676, + "id": 31824, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4032:6:21", + "src": "4106:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_98da2c5e4c6b1db946694570273b859a6e4083ccc8faa155edfc4c54eb3cfd73", "typeString": "literal_string \"WBTC\"" @@ -4162,22 +4207,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4025:14:21", + "src": "4099:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27678, + "id": 31826, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4040:4:21", + "memberLocation": "4114:4:30", "memberName": "orcl", "nodeType": "MemberAccess", - "referencedDeclaration": 27518, - "src": "4025:19:21", + "referencedDeclaration": 31666, + "src": "4099:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4187,29 +4232,29 @@ "operator": "=", "rightHandSide": { "hexValue": "307846343033303038363532326135624545613439383846386341354233366462433937426545383863", - "id": 27679, + "id": 31827, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4047:42:21", + "src": "4121:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "value": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c" }, - "src": "4025:64:21", + "src": "4099:64:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27681, + "id": 31829, "nodeType": "ExpressionStatement", - "src": "4025:64:21" + "src": "4099:64:30" } ] }, @@ -4218,49 +4263,49 @@ "kind": "function", "modifiers": [], "name": "setUpTokens", - "nameLocation": "3555:11:21", + "nameLocation": "3629:11:30", "parameters": { - "id": 27603, + "id": 31751, "nodeType": "ParameterList", "parameters": [], - "src": "3566:2:21" + "src": "3640:2:30" }, "returnParameters": { - "id": 27604, + "id": 31752, "nodeType": "ParameterList", "parameters": [], - "src": "3576:0:21" + "src": "3650:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27747, + "id": 31895, "nodeType": "FunctionDefinition", - "src": "4147:461:21", + "src": "4221:461:30", "nodes": [], "body": { - "id": 27746, + "id": 31894, "nodeType": "Block", - "src": "4214:394:21", + "src": "4288:394:30", "nodes": [], "statements": [ { "assignments": [ - 27693 + 31841 ], "declarations": [ { "constant": false, - "id": 27693, + "id": 31841, "mutability": "mutable", "name": "addr", - "nameLocation": "4233:4:21", + "nameLocation": "4307:4:30", "nodeType": "VariableDeclaration", - "scope": 27746, - "src": "4225:12:21", + "scope": 31894, + "src": "4299:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4268,10 +4313,10 @@ "typeString": "address" }, "typeName": { - "id": 27692, + "id": 31840, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4225:7:21", + "src": "4299:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4281,29 +4326,29 @@ "visibility": "internal" } ], - "id": 27698, + "id": 31846, "initialValue": { "expression": { "baseExpression": { - "id": 27694, + "id": 31842, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "4240:6:21", + "referencedDeclaration": 31672, + "src": "4314:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27696, + "id": 31844, "indexExpression": { - "id": 27695, + "id": 31843, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27685, - "src": "4247:6:21", + "referencedDeclaration": 31833, + "src": "4321:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4314,44 +4359,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4240:14:21", + "src": "4314:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27697, + "id": 31845, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4255:4:21", + "memberLocation": "4329:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "4240:19:21", + "referencedDeclaration": 31662, + "src": "4314:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4225:34:21" + "src": "4299:34:30" }, { "assignments": [ - 27700 + 31848 ], "declarations": [ { "constant": false, - "id": 27700, + "id": 31848, "mutability": "mutable", "name": "slot", - "nameLocation": "4278:4:21", + "nameLocation": "4352:4:30", "nodeType": "VariableDeclaration", - "scope": 27746, - "src": "4270:12:21", + "scope": 31894, + "src": "4344:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4359,10 +4404,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27699, + "id": 31847, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4270:7:21", + "src": "4344:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4371,29 +4416,29 @@ "visibility": "internal" } ], - "id": 27705, + "id": 31853, "initialValue": { "expression": { "baseExpression": { - "id": 27701, + "id": 31849, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "4286:6:21", + "referencedDeclaration": 31672, + "src": "4360:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27703, + "id": 31851, "indexExpression": { - "id": 27702, + "id": 31850, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27685, - "src": "4293:6:21", + "referencedDeclaration": 31833, + "src": "4367:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4404,44 +4449,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4286:14:21", + "src": "4360:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27704, + "id": 31852, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4301:4:21", + "memberLocation": "4375:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "4286:19:21", + "referencedDeclaration": 31664, + "src": "4360:19:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4270:35:21" + "src": "4344:35:30" }, { "assignments": [ - 27707 + 31855 ], "declarations": [ { "constant": false, - "id": 27707, + "id": 31855, "mutability": "mutable", "name": "bal", - "nameLocation": "4324:3:21", + "nameLocation": "4398:3:30", "nodeType": "VariableDeclaration", - "scope": 27746, - "src": "4316:11:21", + "scope": 31894, + "src": "4390:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4449,10 +4494,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27706, + "id": 31854, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4316:7:21", + "src": "4390:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4461,16 +4506,16 @@ "visibility": "internal" } ], - "id": 27714, + "id": 31862, "initialValue": { "arguments": [ { - "id": 27712, + "id": 31860, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27687, - "src": "4353:7:21", + "referencedDeclaration": 31835, + "src": "4427:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4487,12 +4532,12 @@ "expression": { "arguments": [ { - "id": 27709, + "id": 31857, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27693, - "src": "4337:4:21", + "referencedDeclaration": 31841, + "src": "4411:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4506,18 +4551,18 @@ "typeString": "address" } ], - "id": 27708, + "id": 31856, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "4330:6:21", + "referencedDeclaration": 29158, + "src": "4404:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27710, + "id": 31858, "isConstant": false, "isLValue": false, "isPure": false, @@ -4526,29 +4571,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4330:12:21", + "src": "4404:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 27711, + "id": 31859, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4343:9:21", + "memberLocation": "4417:9:30", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26364, - "src": "4330:22:21", + "referencedDeclaration": 29097, + "src": "4404:22:30", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 27713, + "id": 31861, "isConstant": false, "isLValue": false, "isPure": false, @@ -4557,7 +4602,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4330:31:21", + "src": "4404:31:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4565,18 +4610,18 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4316:45:21" + "src": "4390:45:30" }, { "expression": { "arguments": [ { - "id": 27718, + "id": 31866, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27693, - "src": "4399:4:21", + "referencedDeclaration": 31841, + "src": "4473:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4587,24 +4632,24 @@ { "arguments": [ { - "id": 27722, + "id": 31870, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27687, - "src": "4439:7:21", + "referencedDeclaration": 31835, + "src": "4513:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 27723, + "id": 31871, "name": "slot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27700, - "src": "4448:4:21", + "referencedDeclaration": 31848, + "src": "4522:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4623,32 +4668,32 @@ } ], "expression": { - "id": 27720, + "id": 31868, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "4428:3:21", + "src": "4502:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 27721, + "id": 31869, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "4432:6:21", + "memberLocation": "4506:6:30", "memberName": "encode", "nodeType": "MemberAccess", - "src": "4428:10:21", + "src": "4502:10:30", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 27724, + "id": 31872, "isConstant": false, "isLValue": false, "isPure": false, @@ -4657,7 +4702,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4428:25:21", + "src": "4502:25:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -4672,18 +4717,18 @@ "typeString": "bytes memory" } ], - "id": 27719, + "id": 31867, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "4418:9:21", + "src": "4492:9:30", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 27725, + "id": 31873, "isConstant": false, "isLValue": false, "isPure": false, @@ -4692,7 +4737,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4418:36:21", + "src": "4492:36:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4706,18 +4751,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27730, + "id": 31878, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27728, + "id": 31876, "name": "bal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27707, - "src": "4492:3:21", + "referencedDeclaration": 31855, + "src": "4566:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4726,18 +4771,18 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 27729, + "id": 31877, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27689, - "src": "4498:3:21", + "referencedDeclaration": 31837, + "src": "4572:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4492:9:21", + "src": "4566:9:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4751,26 +4796,26 @@ "typeString": "uint256" } ], - "id": 27727, + "id": 31875, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4484:7:21", + "src": "4558:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 27726, + "id": 31874, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4484:7:21", + "src": "4558:7:30", "typeDescriptions": {} } }, - "id": 27731, + "id": 31879, "isConstant": false, "isLValue": false, "isPure": false, @@ -4779,7 +4824,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4484:18:21", + "src": "4558:18:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4803,33 +4848,33 @@ } ], "expression": { - "id": 27715, + "id": 31863, "name": "hevm", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27417, - "src": "4374:4:21", + "referencedDeclaration": 31562, + "src": "4448:4:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, - "id": 27717, + "id": 31865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4379:5:21", + "memberLocation": "4453:5:30", "memberName": "store", "nodeType": "MemberAccess", - "referencedDeclaration": 27403, - "src": "4374:10:21", + "referencedDeclaration": 31548, + "src": "4448:10:30", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$", "typeString": "function (address,bytes32,bytes32) external" } }, - "id": 27732, + "id": 31880, "isConstant": false, "isLValue": false, "isPure": false, @@ -4838,16 +4883,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4374:139:21", + "src": "4448:139:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27733, + "id": 31881, "nodeType": "ExpressionStatement", - "src": "4374:139:21" + "src": "4448:139:30" }, { "expression": { @@ -4855,12 +4900,12 @@ { "arguments": [ { - "id": 27739, + "id": 31887, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27687, - "src": "4558:7:21", + "referencedDeclaration": 31835, + "src": "4632:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4877,12 +4922,12 @@ "expression": { "arguments": [ { - "id": 27736, + "id": 31884, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27693, - "src": "4542:4:21", + "referencedDeclaration": 31841, + "src": "4616:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4896,18 +4941,18 @@ "typeString": "address" } ], - "id": 27735, + "id": 31883, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "4535:6:21", + "referencedDeclaration": 29158, + "src": "4609:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27737, + "id": 31885, "isConstant": false, "isLValue": false, "isPure": false, @@ -4916,29 +4961,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4535:12:21", + "src": "4609:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 27738, + "id": 31886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4548:9:21", + "memberLocation": "4622:9:30", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26364, - "src": "4535:22:21", + "referencedDeclaration": 29097, + "src": "4609:22:30", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 27740, + "id": 31888, "isConstant": false, "isLValue": false, "isPure": false, @@ -4947,7 +4992,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4535:31:21", + "src": "4609:31:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4959,18 +5004,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27743, + "id": 31891, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27741, + "id": 31889, "name": "bal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27707, - "src": "4568:3:21", + "referencedDeclaration": 31855, + "src": "4642:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4979,18 +5024,18 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 27742, + "id": 31890, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27689, - "src": "4574:3:21", + "referencedDeclaration": 31837, + "src": "4648:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4568:9:21", + "src": "4642:9:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5008,7 +5053,7 @@ "typeString": "uint256" } ], - "id": 27734, + "id": 31882, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5024,13 +5069,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "4526:8:21", + "src": "4600:8:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 27744, + "id": 31892, "isConstant": false, "isLValue": false, "isPure": false, @@ -5039,16 +5084,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4526:52:21", + "src": "4600:52:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27745, + "id": 31893, "nodeType": "ExpressionStatement", - "src": "4526:52:21" + "src": "4600:52:30" } ] }, @@ -5057,20 +5102,20 @@ "kind": "function", "modifiers": [], "name": "mint", - "nameLocation": "4156:4:21", + "nameLocation": "4230:4:30", "parameters": { - "id": 27690, + "id": 31838, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27685, + "id": 31833, "mutability": "mutable", "name": "symbol", - "nameLocation": "4169:6:21", + "nameLocation": "4243:6:30", "nodeType": "VariableDeclaration", - "scope": 27747, - "src": "4161:14:21", + "scope": 31895, + "src": "4235:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5078,10 +5123,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 27684, + "id": 31832, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4161:7:21", + "src": "4235:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5091,13 +5136,13 @@ }, { "constant": false, - "id": 27687, + "id": 31835, "mutability": "mutable", "name": "account", - "nameLocation": "4185:7:21", + "nameLocation": "4259:7:30", "nodeType": "VariableDeclaration", - "scope": 27747, - "src": "4177:15:21", + "scope": 31895, + "src": "4251:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5105,10 +5150,10 @@ "typeString": "address" }, "typeName": { - "id": 27686, + "id": 31834, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4177:7:21", + "src": "4251:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5119,13 +5164,13 @@ }, { "constant": false, - "id": 27689, + "id": 31837, "mutability": "mutable", "name": "amt", - "nameLocation": "4202:3:21", + "nameLocation": "4276:3:30", "nodeType": "VariableDeclaration", - "scope": 27747, - "src": "4194:11:21", + "scope": 31895, + "src": "4268:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5133,10 +5178,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27688, + "id": 31836, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4194:7:21", + "src": "4268:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5145,44 +5190,44 @@ "visibility": "internal" } ], - "src": "4160:46:21" + "src": "4234:46:30" }, "returnParameters": { - "id": 27691, + "id": 31839, "nodeType": "ParameterList", "parameters": [], - "src": "4214:0:21" + "src": "4288:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27823, + "id": 31971, "nodeType": "FunctionDefinition", - "src": "4666:583:21", + "src": "4740:583:30", "nodes": [], "body": { - "id": 27822, + "id": 31970, "nodeType": "Block", - "src": "4744:505:21", + "src": "4818:505:30", "nodes": [], "statements": [ { "assignments": [ - 27757 + 31905 ], "declarations": [ { "constant": false, - "id": 27757, + "id": 31905, "mutability": "mutable", "name": "diff", - "nameLocation": "4763:4:21", + "nameLocation": "4837:4:30", "nodeType": "VariableDeclaration", - "scope": 27822, - "src": "4755:12:21", + "scope": 31970, + "src": "4829:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5190,10 +5235,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27756, + "id": 31904, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4755:7:21", + "src": "4829:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5202,25 +5247,25 @@ "visibility": "internal" } ], - "id": 27768, + "id": 31916, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27760, + "id": 31908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27758, + "id": 31906, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4771:4:21", + "referencedDeclaration": 31897, + "src": "4845:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5229,18 +5274,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 27759, + "id": 31907, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "4778:4:21", + "referencedDeclaration": 31899, + "src": "4852:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4771:11:21", + "src": "4845:11:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5251,18 +5296,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27766, + "id": 31914, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27764, + "id": 31912, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "4799:4:21", + "referencedDeclaration": 31899, + "src": "4873:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5271,47 +5316,47 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27765, + "id": 31913, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4806:4:21", + "referencedDeclaration": 31897, + "src": "4880:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4799:11:21", + "src": "4873:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27767, + "id": 31915, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "4771:39:21", + "src": "4845:39:30", "trueExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27763, + "id": 31911, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27761, + "id": 31909, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4785:4:21", + "referencedDeclaration": 31897, + "src": "4859:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5320,18 +5365,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27762, + "id": 31910, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "4792:4:21", + "referencedDeclaration": 31899, + "src": "4866:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4785:11:21", + "src": "4859:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5343,7 +5388,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4755:55:21" + "src": "4829:55:30" }, { "condition": { @@ -5351,18 +5396,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27771, + "id": 31919, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27769, + "id": 31917, "name": "diff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27757, - "src": "4825:4:21", + "referencedDeclaration": 31905, + "src": "4899:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5372,50 +5417,50 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 27770, + "id": 31918, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4833:1:21", + "src": "4907:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4825:9:21", + "src": "4899:9:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 27773, + "id": 31921, "nodeType": "IfStatement", - "src": "4821:22:21", + "src": "4895:22:30", "trueBody": { - "functionReturnParameters": 27755, - "id": 27772, + "functionReturnParameters": 31903, + "id": 31920, "nodeType": "Return", - "src": "4836:7:21" + "src": "4910:7:30" } }, { "assignments": [ - 27775 + 31923 ], "declarations": [ { "constant": false, - "id": 27775, + "id": 31923, "mutability": "mutable", "name": "denominator", - "nameLocation": "4863:11:21", + "nameLocation": "4937:11:30", "nodeType": "VariableDeclaration", - "scope": 27822, - "src": "4855:19:21", + "scope": 31970, + "src": "4929:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5423,10 +5468,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27774, + "id": 31922, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4855:7:21", + "src": "4929:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5435,25 +5480,25 @@ "visibility": "internal" } ], - "id": 27782, + "id": 31930, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27778, + "id": 31926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27776, + "id": 31924, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4877:4:21", + "referencedDeclaration": 31897, + "src": "4951:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5463,52 +5508,52 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 27777, + "id": 31925, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4885:1:21", + "src": "4959:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4877:9:21", + "src": "4951:9:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { - "id": 27780, + "id": 31928, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4896:4:21", + "referencedDeclaration": 31897, + "src": "4970:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27781, + "id": 31929, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "4877:23:21", + "src": "4951:23:30", "trueExpression": { - "id": 27779, + "id": 31927, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "4889:4:21", + "referencedDeclaration": 31899, + "src": "4963:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5520,22 +5565,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4855:45:21" + "src": "4929:45:30" }, { "assignments": [ - 27784 + 31932 ], "declarations": [ { "constant": false, - "id": 27784, + "id": 31932, "mutability": "mutable", "name": "check", - "nameLocation": "4916:5:21", + "nameLocation": "4990:5:30", "nodeType": "VariableDeclaration", - "scope": 27822, - "src": "4911:10:21", + "scope": 31970, + "src": "4985:10:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5543,10 +5588,10 @@ "typeString": "bool" }, "typeName": { - "id": 27783, + "id": 31931, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4911:4:21", + "src": "4985:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5555,13 +5600,13 @@ "visibility": "internal" } ], - "id": 27799, + "id": 31947, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27798, + "id": 31946, "isConstant": false, "isLValue": false, "isPure": false, @@ -5573,7 +5618,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27790, + "id": 31938, "isConstant": false, "isLValue": false, "isPure": false, @@ -5585,18 +5630,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27787, + "id": 31935, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27785, + "id": 31933, "name": "diff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27757, - "src": "4926:4:21", + "referencedDeclaration": 31905, + "src": "5000:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5605,32 +5650,32 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 27786, + "id": 31934, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27512, - "src": "4933:3:21", + "referencedDeclaration": 31660, + "src": "5007:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4926:10:21", + "src": "5000:10:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 27788, + "id": 31936, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4925:12:21", + "src": "4999:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5639,32 +5684,32 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 27789, + "id": 31937, "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27775, - "src": "4940:11:21", + "referencedDeclaration": 31923, + "src": "5014:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4925:26:21", + "src": "4999:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 27791, + "id": 31939, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4924:28:21", + "src": "4998:28:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5679,18 +5724,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27796, + "id": 31944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27792, + "id": 31940, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27512, - "src": "4956:3:21", + "referencedDeclaration": 31660, + "src": "5030:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5703,21 +5748,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27795, + "id": 31943, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27793, + "id": 31941, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4962:2:21", + "src": "5036:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -5727,55 +5772,55 @@ "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { - "id": 27794, + "id": 31942, "name": "accuracy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27753, - "src": "4968:8:21", + "referencedDeclaration": 31901, + "src": "5042:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4962:14:21", + "src": "5036:14:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4956:20:21", + "src": "5030:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 27797, + "id": 31945, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4955:22:21", + "src": "5029:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4924:53:21", + "src": "4998:53:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "4911:66:21" + "src": "4985:66:30" }, { "condition": { - "id": 27801, + "id": 31949, "isConstant": false, "isLValue": false, "isPure": false, @@ -5783,14 +5828,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4994:6:21", + "src": "5068:6:30", "subExpression": { - "id": 27800, + "id": 31948, "name": "check", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27784, - "src": "4995:5:21", + "referencedDeclaration": 31932, + "src": "5069:5:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5801,27 +5846,27 @@ "typeString": "bool" } }, - "id": 27821, + "id": 31969, "nodeType": "IfStatement", - "src": "4990:252:21", + "src": "5064:252:30", "trueBody": { - "id": 27820, + "id": 31968, "nodeType": "Block", - "src": "5001:241:21", + "src": "5075:241:30", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a20617070726f782061203d3d2062206e6f74207361746973666965642c2061636375726163792064696769747320", - "id": 27803, + "id": 31951, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5036:54:21", + "src": "5110:54:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_94772435adb9a5e16afe18480e0e25583a903de130497d52a7375f0e3b0b0ffc", "typeString": "literal_string \"Error: approx a == b not satisfied, accuracy digits \"" @@ -5829,12 +5874,12 @@ "value": "Error: approx a == b not satisfied, accuracy digits " }, { - "id": 27804, + "id": 31952, "name": "accuracy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27753, - "src": "5092:8:21", + "referencedDeclaration": 31901, + "src": "5166:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5852,18 +5897,18 @@ "typeString": "uint256" } ], - "id": 27802, + "id": 31950, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5021:14:21", + "src": "5095:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27805, + "id": 31953, "isConstant": false, "isLValue": false, "isPure": false, @@ -5872,30 +5917,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5021:80:21", + "src": "5095:80:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27806, + "id": 31954, "nodeType": "EmitStatement", - "src": "5016:85:21" + "src": "5090:85:30" }, { "eventCall": { "arguments": [ { "hexValue": "20204578706563746564", - "id": 27808, + "id": 31956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5136:12:21", + "src": "5210:12:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" @@ -5903,12 +5948,12 @@ "value": " Expected" }, { - "id": 27809, + "id": 31957, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "5150:4:21", + "referencedDeclaration": 31897, + "src": "5224:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5926,18 +5971,18 @@ "typeString": "uint256" } ], - "id": 27807, + "id": 31955, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5121:14:21", + "src": "5195:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27810, + "id": 31958, "isConstant": false, "isLValue": false, "isPure": false, @@ -5946,30 +5991,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5121:34:21", + "src": "5195:34:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27811, + "id": 31959, "nodeType": "EmitStatement", - "src": "5116:39:21" + "src": "5190:39:30" }, { "eventCall": { "arguments": [ { "hexValue": "2020202041637475616c", - "id": 27813, + "id": 31961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5190:12:21", + "src": "5264:12:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" @@ -5977,12 +6022,12 @@ "value": " Actual" }, { - "id": 27814, + "id": 31962, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "5204:4:21", + "referencedDeclaration": 31899, + "src": "5278:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6000,18 +6045,18 @@ "typeString": "uint256" } ], - "id": 27812, + "id": 31960, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5175:14:21", + "src": "5249:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27815, + "id": 31963, "isConstant": false, "isLValue": false, "isPure": false, @@ -6020,34 +6065,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5175:34:21", + "src": "5249:34:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27816, + "id": 31964, "nodeType": "EmitStatement", - "src": "5170:39:21" + "src": "5244:39:30" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 27817, + "id": 31965, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, - "src": "5224:4:21", + "src": "5298:4:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 27818, + "id": 31966, "isConstant": false, "isLValue": false, "isPure": false, @@ -6056,16 +6101,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5224:6:21", + "src": "5298:6:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27819, + "id": 31967, "nodeType": "ExpressionStatement", - "src": "5224:6:21" + "src": "5298:6:30" } ] } @@ -6077,20 +6122,20 @@ "kind": "function", "modifiers": [], "name": "withinPrecision", - "nameLocation": "4675:15:21", + "nameLocation": "4749:15:30", "parameters": { - "id": 27754, + "id": 31902, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27749, + "id": 31897, "mutability": "mutable", "name": "val0", - "nameLocation": "4699:4:21", + "nameLocation": "4773:4:30", "nodeType": "VariableDeclaration", - "scope": 27823, - "src": "4691:12:21", + "scope": 31971, + "src": "4765:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6098,10 +6143,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27748, + "id": 31896, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4691:7:21", + "src": "4765:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6111,13 +6156,13 @@ }, { "constant": false, - "id": 27751, + "id": 31899, "mutability": "mutable", "name": "val1", - "nameLocation": "4713:4:21", + "nameLocation": "4787:4:30", "nodeType": "VariableDeclaration", - "scope": 27823, - "src": "4705:12:21", + "scope": 31971, + "src": "4779:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6125,10 +6170,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27750, + "id": 31898, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4705:7:21", + "src": "4779:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6138,13 +6183,13 @@ }, { "constant": false, - "id": 27753, + "id": 31901, "mutability": "mutable", "name": "accuracy", - "nameLocation": "4727:8:21", + "nameLocation": "4801:8:30", "nodeType": "VariableDeclaration", - "scope": 27823, - "src": "4719:16:21", + "scope": 31971, + "src": "4793:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6152,10 +6197,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27752, + "id": 31900, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4719:7:21", + "src": "4793:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6164,44 +6209,44 @@ "visibility": "internal" } ], - "src": "4690:46:21" + "src": "4764:46:30" }, "returnParameters": { - "id": 27755, + "id": 31903, "nodeType": "ParameterList", "parameters": [], - "src": "4744:0:21" + "src": "4818:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27874, + "id": 32022, "nodeType": "FunctionDefinition", - "src": "5300:479:21", + "src": "5374:479:30", "nodes": [], "body": { - "id": 27873, + "id": 32021, "nodeType": "Block", - "src": "5377:402:21", + "src": "5451:402:30", "nodes": [], "statements": [ { "assignments": [ - 27833 + 31981 ], "declarations": [ { "constant": false, - "id": 27833, + "id": 31981, "mutability": "mutable", "name": "actualDiff", - "nameLocation": "5396:10:21", + "nameLocation": "5470:10:30", "nodeType": "VariableDeclaration", - "scope": 27873, - "src": "5388:18:21", + "scope": 32021, + "src": "5462:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6209,10 +6254,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27832, + "id": 31980, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5388:7:21", + "src": "5462:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6221,25 +6266,25 @@ "visibility": "internal" } ], - "id": 27844, + "id": 31992, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27836, + "id": 31984, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27834, + "id": 31982, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27825, - "src": "5409:4:21", + "referencedDeclaration": 31973, + "src": "5483:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6248,18 +6293,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 27835, + "id": 31983, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27827, - "src": "5416:4:21", + "referencedDeclaration": 31975, + "src": "5490:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5409:11:21", + "src": "5483:11:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6270,18 +6315,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27842, + "id": 31990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27840, + "id": 31988, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27827, - "src": "5437:4:21", + "referencedDeclaration": 31975, + "src": "5511:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6290,47 +6335,47 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27841, + "id": 31989, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27825, - "src": "5444:4:21", + "referencedDeclaration": 31973, + "src": "5518:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5437:11:21", + "src": "5511:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27843, + "id": 31991, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "5409:39:21", + "src": "5483:39:30", "trueExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27839, + "id": 31987, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27837, + "id": 31985, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27825, - "src": "5423:4:21", + "referencedDeclaration": 31973, + "src": "5497:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6339,18 +6384,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27838, + "id": 31986, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27827, - "src": "5430:4:21", + "referencedDeclaration": 31975, + "src": "5504:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5423:11:21", + "src": "5497:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6362,22 +6407,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5388:60:21" + "src": "5462:60:30" }, { "assignments": [ - 27846 + 31994 ], "declarations": [ { "constant": false, - "id": 27846, + "id": 31994, "mutability": "mutable", "name": "check", - "nameLocation": "5464:5:21", + "nameLocation": "5538:5:30", "nodeType": "VariableDeclaration", - "scope": 27873, - "src": "5459:10:21", + "scope": 32021, + "src": "5533:10:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6385,10 +6430,10 @@ "typeString": "bool" }, "typeName": { - "id": 27845, + "id": 31993, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5459:4:21", + "src": "5533:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6397,24 +6442,24 @@ "visibility": "internal" } ], - "id": 27850, + "id": 31998, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27849, + "id": 31997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27847, + "id": 31995, "name": "actualDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27833, - "src": "5472:10:21", + "referencedDeclaration": 31981, + "src": "5546:10:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6423,29 +6468,29 @@ "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { - "id": 27848, + "id": 31996, "name": "expectedDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27829, - "src": "5486:12:21", + "referencedDeclaration": 31977, + "src": "5560:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5472:26:21", + "src": "5546:26:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "5459:39:21" + "src": "5533:39:30" }, { "condition": { - "id": 27852, + "id": 32000, "isConstant": false, "isLValue": false, "isPure": false, @@ -6453,14 +6498,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5515:6:21", + "src": "5589:6:30", "subExpression": { - "id": 27851, + "id": 31999, "name": "check", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27846, - "src": "5516:5:21", + "referencedDeclaration": 31994, + "src": "5590:5:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6471,27 +6516,27 @@ "typeString": "bool" } }, - "id": 27872, + "id": 32020, "nodeType": "IfStatement", - "src": "5511:261:21", + "src": "5585:261:30", "trueBody": { - "id": 27871, + "id": 32019, "nodeType": "Block", - "src": "5523:249:21", + "src": "5597:249:30", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a20617070726f782061203d3d2062206e6f74207361746973666965642c20616363757261637920646966666572656e636520", - "id": 27854, + "id": 32002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5558:58:21", + "src": "5632:58:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_96172d3974b4dd800f0469c3a6568537958d8450292a90b9e1d84055f2a54229", "typeString": "literal_string \"Error: approx a == b not satisfied, accuracy difference \"" @@ -6499,12 +6544,12 @@ "value": "Error: approx a == b not satisfied, accuracy difference " }, { - "id": 27855, + "id": 32003, "name": "expectedDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27829, - "src": "5618:12:21", + "referencedDeclaration": 31977, + "src": "5692:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6522,18 +6567,18 @@ "typeString": "uint256" } ], - "id": 27853, + "id": 32001, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5543:14:21", + "src": "5617:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27856, + "id": 32004, "isConstant": false, "isLValue": false, "isPure": false, @@ -6542,30 +6587,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5543:88:21", + "src": "5617:88:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27857, + "id": 32005, "nodeType": "EmitStatement", - "src": "5538:93:21" + "src": "5612:93:30" }, { "eventCall": { "arguments": [ { "hexValue": "20204578706563746564", - "id": 27859, + "id": 32007, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5666:12:21", + "src": "5740:12:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" @@ -6573,12 +6618,12 @@ "value": " Expected" }, { - "id": 27860, + "id": 32008, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27825, - "src": "5680:4:21", + "referencedDeclaration": 31973, + "src": "5754:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6596,18 +6641,18 @@ "typeString": "uint256" } ], - "id": 27858, + "id": 32006, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5651:14:21", + "src": "5725:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27861, + "id": 32009, "isConstant": false, "isLValue": false, "isPure": false, @@ -6616,30 +6661,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5651:34:21", + "src": "5725:34:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27862, + "id": 32010, "nodeType": "EmitStatement", - "src": "5646:39:21" + "src": "5720:39:30" }, { "eventCall": { "arguments": [ { "hexValue": "2020202041637475616c", - "id": 27864, + "id": 32012, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5720:12:21", + "src": "5794:12:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" @@ -6647,12 +6692,12 @@ "value": " Actual" }, { - "id": 27865, + "id": 32013, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27827, - "src": "5734:4:21", + "referencedDeclaration": 31975, + "src": "5808:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6670,18 +6715,18 @@ "typeString": "uint256" } ], - "id": 27863, + "id": 32011, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5705:14:21", + "src": "5779:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27866, + "id": 32014, "isConstant": false, "isLValue": false, "isPure": false, @@ -6690,34 +6735,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5705:34:21", + "src": "5779:34:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27867, + "id": 32015, "nodeType": "EmitStatement", - "src": "5700:39:21" + "src": "5774:39:30" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 27868, + "id": 32016, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, - "src": "5754:4:21", + "src": "5828:4:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 27869, + "id": 32017, "isConstant": false, "isLValue": false, "isPure": false, @@ -6726,16 +6771,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5754:6:21", + "src": "5828:6:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27870, + "id": 32018, "nodeType": "ExpressionStatement", - "src": "5754:6:21" + "src": "5828:6:30" } ] } @@ -6747,20 +6792,20 @@ "kind": "function", "modifiers": [], "name": "withinDiff", - "nameLocation": "5309:10:21", + "nameLocation": "5383:10:30", "parameters": { - "id": 27830, + "id": 31978, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27825, + "id": 31973, "mutability": "mutable", "name": "val0", - "nameLocation": "5328:4:21", + "nameLocation": "5402:4:30", "nodeType": "VariableDeclaration", - "scope": 27874, - "src": "5320:12:21", + "scope": 32022, + "src": "5394:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6768,10 +6813,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27824, + "id": 31972, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5320:7:21", + "src": "5394:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6781,13 +6826,13 @@ }, { "constant": false, - "id": 27827, + "id": 31975, "mutability": "mutable", "name": "val1", - "nameLocation": "5342:4:21", + "nameLocation": "5416:4:30", "nodeType": "VariableDeclaration", - "scope": 27874, - "src": "5334:12:21", + "scope": 32022, + "src": "5408:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6795,10 +6840,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27826, + "id": 31974, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5334:7:21", + "src": "5408:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6808,13 +6853,13 @@ }, { "constant": false, - "id": 27829, + "id": 31977, "mutability": "mutable", "name": "expectedDiff", - "nameLocation": "5356:12:21", + "nameLocation": "5430:12:30", "nodeType": "VariableDeclaration", - "scope": 27874, - "src": "5348:20:21", + "scope": 32022, + "src": "5422:20:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6822,10 +6867,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27828, + "id": 31976, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5348:7:21", + "src": "5422:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6834,64 +6879,64 @@ "visibility": "internal" } ], - "src": "5319:50:21" + "src": "5393:50:30" }, "returnParameters": { - "id": 27831, + "id": 31979, "nodeType": "ParameterList", "parameters": [], - "src": "5377:0:21" + "src": "5451:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27893, + "id": 32041, "nodeType": "FunctionDefinition", - "src": "5787:159:21", + "src": "5861:159:30", "nodes": [], "body": { - "id": 27892, + "id": 32040, "nodeType": "Block", - "src": "5882:64:21", + "src": "5956:64:30", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 27886, + "id": 32034, "name": "val", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27876, - "src": "5917:3:21", + "referencedDeclaration": 32024, + "src": "5991:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 27887, + "id": 32035, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27878, - "src": "5922:3:21", + "referencedDeclaration": 32026, + "src": "5996:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 27888, + "id": 32036, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27880, - "src": "5927:3:21", + "referencedDeclaration": 32028, + "src": "6001:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6899,14 +6944,14 @@ }, { "hexValue": "66616c7365", - "id": 27889, + "id": 32037, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5932:5:21", + "src": "6006:5:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6933,21 +6978,21 @@ "typeString": "bool" } ], - "id": 27885, + "id": 32033, "name": "constrictToRange", "nodeType": "Identifier", "overloadedDeclarations": [ - 27893, - 27931 + 32041, + 32079 ], - "referencedDeclaration": 27931, - "src": "5900:16:21", + "referencedDeclaration": 32079, + "src": "5974:16:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256,bool) pure returns (uint256)" } }, - "id": 27890, + "id": 32038, "isConstant": false, "isLValue": false, "isPure": false, @@ -6956,17 +7001,17 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5900:38:21", + "src": "5974:38:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 27884, - "id": 27891, + "functionReturnParameters": 32032, + "id": 32039, "nodeType": "Return", - "src": "5893:45:21" + "src": "5967:45:30" } ] }, @@ -6975,20 +7020,20 @@ "kind": "function", "modifiers": [], "name": "constrictToRange", - "nameLocation": "5796:16:21", + "nameLocation": "5870:16:30", "parameters": { - "id": 27881, + "id": 32029, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27876, + "id": 32024, "mutability": "mutable", "name": "val", - "nameLocation": "5821:3:21", + "nameLocation": "5895:3:30", "nodeType": "VariableDeclaration", - "scope": 27893, - "src": "5813:11:21", + "scope": 32041, + "src": "5887:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6996,10 +7041,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27875, + "id": 32023, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5813:7:21", + "src": "5887:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7009,13 +7054,13 @@ }, { "constant": false, - "id": 27878, + "id": 32026, "mutability": "mutable", "name": "min", - "nameLocation": "5834:3:21", + "nameLocation": "5908:3:30", "nodeType": "VariableDeclaration", - "scope": 27893, - "src": "5826:11:21", + "scope": 32041, + "src": "5900:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7023,10 +7068,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27877, + "id": 32025, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5826:7:21", + "src": "5900:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7036,13 +7081,13 @@ }, { "constant": false, - "id": 27880, + "id": 32028, "mutability": "mutable", "name": "max", - "nameLocation": "5847:3:21", + "nameLocation": "5921:3:30", "nodeType": "VariableDeclaration", - "scope": 27893, - "src": "5839:11:21", + "scope": 32041, + "src": "5913:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7050,10 +7095,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27879, + "id": 32027, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5839:7:21", + "src": "5913:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7062,21 +7107,21 @@ "visibility": "internal" } ], - "src": "5812:39:21" + "src": "5886:39:30" }, "returnParameters": { - "id": 27884, + "id": 32032, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27883, + "id": 32031, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27893, - "src": "5873:7:21", + "scope": 32041, + "src": "5947:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7084,10 +7129,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27882, + "id": 32030, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5873:7:21", + "src": "5947:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7096,22 +7141,22 @@ "visibility": "internal" } ], - "src": "5872:9:21" + "src": "5946:9:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "pure", "virtual": false, "visibility": "public" }, { - "id": 27931, + "id": 32079, "nodeType": "FunctionDefinition", - "src": "5954:291:21", + "src": "6028:291:30", "nodes": [], "body": { - "id": 27930, + "id": 32078, "nodeType": "Block", - "src": "6063:182:21", + "src": "6137:182:30", "nodes": [], "statements": [ { @@ -7120,7 +7165,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 27911, + "id": 32059, "isConstant": false, "isLValue": false, "isPure": false, @@ -7130,18 +7175,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27908, + "id": 32056, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27906, + "id": 32054, "name": "val", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27895, - "src": "6083:3:21", + "referencedDeclaration": 32043, + "src": "6157:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7151,21 +7196,21 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 27907, + "id": 32055, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6090:1:21", + "src": "6164:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "6083:8:21", + "src": "6157:8:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7174,7 +7219,7 @@ "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { - "id": 27910, + "id": 32058, "isConstant": false, "isLValue": false, "isPure": false, @@ -7182,14 +7227,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "6095:8:21", + "src": "6169:8:30", "subExpression": { - "id": 27909, + "id": 32057, "name": "nonZero", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27901, - "src": "6096:7:21", + "referencedDeclaration": 32049, + "src": "6170:7:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7200,7 +7245,7 @@ "typeString": "bool" } }, - "src": "6083:20:21", + "src": "6157:20:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7212,18 +7257,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27916, + "id": 32064, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27914, + "id": 32062, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27899, - "src": "6133:3:21", + "referencedDeclaration": 32047, + "src": "6207:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7232,18 +7277,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 27915, + "id": 32063, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27897, - "src": "6140:3:21", + "referencedDeclaration": 32045, + "src": "6214:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6133:10:21", + "src": "6207:10:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7255,7 +7300,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27926, + "id": 32074, "isConstant": false, "isLValue": false, "isPure": false, @@ -7265,18 +7310,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27924, + "id": 32072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27919, + "id": 32067, "name": "val", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27895, - "src": "6214:3:21", + "referencedDeclaration": 32043, + "src": "6288:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7291,18 +7336,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27922, + "id": 32070, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27920, + "id": 32068, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27899, - "src": "6221:3:21", + "referencedDeclaration": 32047, + "src": "6295:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7311,38 +7356,38 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27921, + "id": 32069, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27897, - "src": "6227:3:21", + "referencedDeclaration": 32045, + "src": "6301:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6221:9:21", + "src": "6295:9:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 27923, + "id": 32071, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "6220:11:21", + "src": "6294:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6214:17:21", + "src": "6288:17:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7351,74 +7396,74 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 27925, + "id": 32073, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27897, - "src": "6234:3:21", + "referencedDeclaration": 32045, + "src": "6308:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6214:23:21", + "src": "6288:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 27905, - "id": 27927, + "functionReturnParameters": 32053, + "id": 32075, "nodeType": "Return", - "src": "6207:30:21" + "src": "6281:30:30" }, - "id": 27928, + "id": 32076, "nodeType": "IfStatement", - "src": "6129:108:21", + "src": "6203:108:30", "trueBody": { "expression": { - "id": 27917, + "id": 32065, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27899, - "src": "6162:3:21", + "referencedDeclaration": 32047, + "src": "6236:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 27905, - "id": 27918, + "functionReturnParameters": 32053, + "id": 32066, "nodeType": "Return", - "src": "6155:10:21" + "src": "6229:10:30" } }, - "id": 27929, + "id": 32077, "nodeType": "IfStatement", - "src": "6074:163:21", + "src": "6148:163:30", "trueBody": { "expression": { "hexValue": "30", - "id": 27912, + "id": 32060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6112:1:21", + "src": "6186:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "functionReturnParameters": 27905, - "id": 27913, + "functionReturnParameters": 32053, + "id": 32061, "nodeType": "Return", - "src": "6105:8:21" + "src": "6179:8:30" } } ] @@ -7428,20 +7473,20 @@ "kind": "function", "modifiers": [], "name": "constrictToRange", - "nameLocation": "5963:16:21", + "nameLocation": "6037:16:30", "parameters": { - "id": 27902, + "id": 32050, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27895, + "id": 32043, "mutability": "mutable", "name": "val", - "nameLocation": "5988:3:21", + "nameLocation": "6062:3:30", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "5980:11:21", + "scope": 32079, + "src": "6054:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7449,10 +7494,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27894, + "id": 32042, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5980:7:21", + "src": "6054:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7462,13 +7507,13 @@ }, { "constant": false, - "id": 27897, + "id": 32045, "mutability": "mutable", "name": "min", - "nameLocation": "6001:3:21", + "nameLocation": "6075:3:30", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "5993:11:21", + "scope": 32079, + "src": "6067:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7476,10 +7521,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27896, + "id": 32044, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5993:7:21", + "src": "6067:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7489,13 +7534,13 @@ }, { "constant": false, - "id": 27899, + "id": 32047, "mutability": "mutable", "name": "max", - "nameLocation": "6014:3:21", + "nameLocation": "6088:3:30", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "6006:11:21", + "scope": 32079, + "src": "6080:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7503,10 +7548,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27898, + "id": 32046, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6006:7:21", + "src": "6080:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7516,13 +7561,13 @@ }, { "constant": false, - "id": 27901, + "id": 32049, "mutability": "mutable", "name": "nonZero", - "nameLocation": "6024:7:21", + "nameLocation": "6098:7:30", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "6019:12:21", + "scope": 32079, + "src": "6093:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7530,10 +7575,10 @@ "typeString": "bool" }, "typeName": { - "id": 27900, + "id": 32048, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6019:4:21", + "src": "6093:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7542,21 +7587,21 @@ "visibility": "internal" } ], - "src": "5979:53:21" + "src": "6053:53:30" }, "returnParameters": { - "id": 27905, + "id": 32053, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27904, + "id": 32052, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "6054:7:21", + "scope": 32079, + "src": "6128:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7564,10 +7609,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27903, + "id": 32051, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6054:7:21", + "src": "6128:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7576,9 +7621,9 @@ "visibility": "internal" } ], - "src": "6053:9:21" + "src": "6127:9:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "pure", "virtual": false, "visibility": "public" @@ -7588,37 +7633,37 @@ "baseContracts": [ { "baseName": { - "id": 27413, + "id": 31558, "name": "DSTest", "nameLocations": [ - "469:6:21" + "469:6:30" ], "nodeType": "IdentifierPath", "referencedDeclaration": 1786, - "src": "469:6:21" + "src": "469:6:30" }, - "id": 27414, + "id": 31559, "nodeType": "InheritanceSpecifier", - "src": "469:6:21" + "src": "469:6:30" } ], "canonicalName": "Utility", "contractDependencies": [ - 27385 + 30379 ], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 27932, + 32080, 1786 ], "name": "Utility", - "nameLocation": "458:7:21", - "scope": 27933, + "nameLocation": "458:7:30", + "scope": 32081, "usedErrors": [] } ], "license": "AGPL-3.0-or-later" }, - "id": 21 + "id": 30 } \ No newline at end of file diff --git a/out/Utility.sol/Utility.json b/out/Utility.sol/Utility.json index 917b491..c521e55 100644 --- a/out/Utility.sol/Utility.json +++ b/out/Utility.sol/Utility.json @@ -627,13 +627,13 @@ } ], "bytecode": { - "object": "0x60806040526000805460ff1916600117905534801561001d57600080fd5b5060008054757109709ecfa91a80626ff3989d68f67f5b1dd12d000062010000600160b01b0319909116179055611630806100596000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80638c38922f116100a2578063c060c5f311610071578063c060c5f3146101d3578063c5ba73ed146101e6578063e70dd6cf146101ee578063eea96210146101f6578063fa7626d41461045257600080fd5b80638c38922f146101a35780639f71f14a146101ab578063b967b5a7146101b3578063ba414fa6146101bb57600080fd5b806338505fb0116100de57806338505fb01461015f5780636c676a60146101675780637a8fe3c0146101885780637ed9db591461019057600080fd5b8063174a5be41461011057806330f7c5c31461012f578063344b1478146101445780633493f4ca14610157575b600080fd5b610118600181565b60405160ff90911681526020015b60405180910390f35b61014261013d366004610ccd565b61045f565b005b610142610152366004610ccd565b6105ba565b610118600b81565b610118600281565b61017a610175366004610d0a565b6106ba565b604051908152602001610126565b610118600c81565b61014261019e366004610d4b565b61070d565b610118600a81565b610118600481565b6101426108ce565b6101c36109ab565b6040519015158152602001610126565b61017a6101e1366004610ccd565b610ad6565b610118600381565b610118600081565b61014260046020527ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603c80546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481790915560097ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603d557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13e80548216736b175474e89094c44da98b954eedeac495271d0f17905560027f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13f557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf1408054821673aed0c38402a5d19df6e4c03f4e2dced6e29c1ee91790557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d268054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560037f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d27557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d2880548216735f4ec3df9cbd43714fe2740f5e3616155c5b8419179055635742544360e01b60009081527f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691d980548316732260fac5e5542a773aa44fbcfedf7c193bc2c5991790557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691da557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691db805490911673f4030086522a5beea4988f8ca5b36dbc97bee88c179055565b6000546101c39060ff1681565b6000828411610477576104728484610da5565b610481565b6104818385610da5565b9050806000036104915750505050565b6000841561049f57846104a1565b835b905060006104b084600a610ea2565b6104c6906b033b2e3c9fd0803ce8000000610ecb565b826104dd6b033b2e3c9fd0803ce800000086610edf565b6104e79190610ecb565b109050806105b257604080518181526034818301527f4572726f723a20617070726f782061203d3d2062206e6f742073617469736669606082015273032b2161030b1b1bab930b1bc903234b3b4ba39960651b60808201526020810186905290516000805160206115db8339815191529181900360a00190a16000805160206115db8339815191528660405161057d9190610ef6565b60405180910390a16000805160206115db833981519152856040516105a29190610f22565b60405180910390a16105b2610ae5565b505050505050565b60008284116105d2576105cd8484610da5565b6105dc565b6105dc8385610da5565b905081811115806106b357604080518181526038818301527f4572726f723a20617070726f782061203d3d2062206e6f74207361746973666960608201527f65642c20616363757261637920646966666572656e636520000000000000000060808201526020810185905290516000805160206115db8339815191529181900360a00190a16000805160206115db8339815191528560405161067e9190610ef6565b60405180910390a16000805160206115db833981519152846040516106a39190610f22565b60405180910390a16106b3610ae5565b5050505050565b6000841580156106c8575081155b156106d557506000610705565b8383036106e3575081610705565b836106ee8185610da5565b6106f89087610f4e565b6107029190610f62565b90505b949350505050565b6000838152600460208190526040808320805460019091015491516370a0823160e01b81526001600160a01b0387811694820194909452921692909183906370a0823190602401602060405180830381865afa158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610f75565b600054604080516001600160a01b0389811660208301529181018690529293506201000090910416906370ca10bb9085906060016040516020818303038152906040528051906020012087856107eb9190610f62565b60405160e085901b6001600160e01b03191681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b50506040516370a0823160e01b81526001600160a01b0388811660048301526105b29350861691506370a0823190602401602060405180830381865afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf9190610f75565b6108c98684610f62565b610bf1565b6040516108da90610cc0565b604051809103906000f0801580156108f6573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b039290921691909117905560405161092390610cc0565b604051809103906000f08015801561093f573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b039290921691909117905560405161096c90610cc0565b604051809103906000f080158015610988573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008054610100900460ff16156109cb5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610ad15760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b82840152825180830384018152606083019093526000929091610a59917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001610fbe565b60408051601f1981840301815290829052610a7391610fda565b6000604051808303816000865af19150503d8060008114610ab0576040519150601f19603f3d011682016040523d82523d6000602084013e610ab5565b606091505b5091505080806020019051810190610acd9190610fe6565b9150505b919050565b600061070584848460006106ba565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610be05760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f1981840301815290829052610b7f9291602001610fbe565b60408051601f1981840301815290829052610b9991610fda565b6000604051808303816000865af19150503d8060008114610bd6576040519150601f19603f3d011682016040523d82523d6000602084013e610bdb565b606091505b505050505b6000805461ff001916610100179055565b808214610cbc577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051610c629060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a16000805160206115db83398151915281604051610c879190610ef6565b60405180910390a16000805160206115db83398151915282604051610cac9190610f22565b60405180910390a1610cbc610ae5565b5050565b6105d78061100483390190565b600080600060608486031215610ce257600080fd5b505081359360208301359350604090920135919050565b8015158114610d0757600080fd5b50565b60008060008060808587031215610d2057600080fd5b8435935060208501359250604085013591506060850135610d4081610cf9565b939692955090935050565b600080600060608486031215610d6057600080fd5b8335925060208401356001600160a01b0381168114610d7e57600080fd5b929592945050506040919091013590565b634e487b7160e01b600052601160045260246000fd5b81810381811115610db857610db8610d8f565b92915050565b600181815b80851115610df9578160001904821115610ddf57610ddf610d8f565b80851615610dec57918102915b93841c9390800290610dc3565b509250929050565b600082610e1057506001610db8565b81610e1d57506000610db8565b8160018114610e335760028114610e3d57610e59565b6001915050610db8565b60ff841115610e4e57610e4e610d8f565b50506001821b610db8565b5060208310610133831016604e8410600b8410161715610e7c575081810a610db8565b610e868383610dbe565b8060001904821115610e9a57610e9a610d8f565b029392505050565b6000610eae8383610e01565b9392505050565b634e487b7160e01b600052601260045260246000fd5b600082610eda57610eda610eb5565b500490565b8082028115828204841417610db857610db8610d8f565b6040808252600a90820152690808115e1c1958dd195960b21b6060820152602081019190915260800190565b6040808252600a9082015269080808081058dd1d585b60b21b6060820152602081019190915260800190565b600082610f5d57610f5d610eb5565b500690565b80820180821115610db857610db8610d8f565b600060208284031215610f8757600080fd5b5051919050565b6000815160005b81811015610faf5760208185018101518683015201610f95565b50600093019283525090919050565b6001600160e01b03198316815260006107056004830184610f8e565b6000610eae8284610f8e565b600060208284031215610ff857600080fd5b8151610eae81610cf956fe608060405234801561001057600080fd5b506105b7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea26469706673582212202284e67777fca07e29094068d3e700ce3ff463464acf1e2573fcb253960d116864736f6c63430008110033b2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a264697066735822122026ebb28edd1d473a37e486b2d78d891e9540ee9cd062c2fa8b91d389eca9573564736f6c63430008110033", - "sourceMap": "449:5807:21:-:0;;;1572:26:0;;;-1:-1:-1;;1572:26:0;1594:4;1572:26;;;2989:103:21;;;;;;;;;-1:-1:-1;3048:37:21;3012:77;;;-1:-1:-1;;;;;;3012:77:21;;;;;;449:5807;;;;;;", + "object": "0x60806040526000805460ff1916600117905534801561001d57600080fd5b5060008054757109709ecfa91a80626ff3989d68f67f5b1dd12d000062010000600160b01b0319909116179055611630806100596000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80638c38922f116100a2578063c060c5f311610071578063c060c5f3146101d3578063c5ba73ed146101e6578063e70dd6cf146101ee578063eea96210146101f6578063fa7626d41461045257600080fd5b80638c38922f146101a35780639f71f14a146101ab578063b967b5a7146101b3578063ba414fa6146101bb57600080fd5b806338505fb0116100de57806338505fb01461015f5780636c676a60146101675780637a8fe3c0146101885780637ed9db591461019057600080fd5b8063174a5be41461011057806330f7c5c31461012f578063344b1478146101445780633493f4ca14610157575b600080fd5b610118600181565b60405160ff90911681526020015b60405180910390f35b61014261013d366004610ccd565b61045f565b005b610142610152366004610ccd565b6105ba565b610118600b81565b610118600281565b61017a610175366004610d0a565b6106ba565b604051908152602001610126565b610118600c81565b61014261019e366004610d4b565b61070d565b610118600a81565b610118600481565b6101426108ce565b6101c36109ab565b6040519015158152602001610126565b61017a6101e1366004610ccd565b610ad6565b610118600381565b610118600081565b61014260046020527ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603c80546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481790915560097ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603d557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13e80548216736b175474e89094c44da98b954eedeac495271d0f17905560027f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13f557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf1408054821673aed0c38402a5d19df6e4c03f4e2dced6e29c1ee91790557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d268054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560037f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d27557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d2880548216735f4ec3df9cbd43714fe2740f5e3616155c5b8419179055635742544360e01b60009081527f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691d980548316732260fac5e5542a773aa44fbcfedf7c193bc2c5991790557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691da557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691db805490911673f4030086522a5beea4988f8ca5b36dbc97bee88c179055565b6000546101c39060ff1681565b6000828411610477576104728484610da5565b610481565b6104818385610da5565b9050806000036104915750505050565b6000841561049f57846104a1565b835b905060006104b084600a610ea2565b6104c6906b033b2e3c9fd0803ce8000000610ecb565b826104dd6b033b2e3c9fd0803ce800000086610edf565b6104e79190610ecb565b109050806105b257604080518181526034818301527f4572726f723a20617070726f782061203d3d2062206e6f742073617469736669606082015273032b2161030b1b1bab930b1bc903234b3b4ba39960651b60808201526020810186905290516000805160206115db8339815191529181900360a00190a16000805160206115db8339815191528660405161057d9190610ef6565b60405180910390a16000805160206115db833981519152856040516105a29190610f22565b60405180910390a16105b2610ae5565b505050505050565b60008284116105d2576105cd8484610da5565b6105dc565b6105dc8385610da5565b905081811115806106b357604080518181526038818301527f4572726f723a20617070726f782061203d3d2062206e6f74207361746973666960608201527f65642c20616363757261637920646966666572656e636520000000000000000060808201526020810185905290516000805160206115db8339815191529181900360a00190a16000805160206115db8339815191528560405161067e9190610ef6565b60405180910390a16000805160206115db833981519152846040516106a39190610f22565b60405180910390a16106b3610ae5565b5050505050565b6000841580156106c8575081155b156106d557506000610705565b8383036106e3575081610705565b836106ee8185610da5565b6106f89087610f4e565b6107029190610f62565b90505b949350505050565b6000838152600460208190526040808320805460019091015491516370a0823160e01b81526001600160a01b0387811694820194909452921692909183906370a0823190602401602060405180830381865afa158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610f75565b600054604080516001600160a01b0389811660208301529181018690529293506201000090910416906370ca10bb9085906060016040516020818303038152906040528051906020012087856107eb9190610f62565b60405160e085901b6001600160e01b03191681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b50506040516370a0823160e01b81526001600160a01b0388811660048301526105b29350861691506370a0823190602401602060405180830381865afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf9190610f75565b6108c98684610f62565b610bf1565b6040516108da90610cc0565b604051809103906000f0801580156108f6573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b039290921691909117905560405161092390610cc0565b604051809103906000f08015801561093f573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b039290921691909117905560405161096c90610cc0565b604051809103906000f080158015610988573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008054610100900460ff16156109cb5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610ad15760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b82840152825180830384018152606083019093526000929091610a59917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001610fbe565b60408051601f1981840301815290829052610a7391610fda565b6000604051808303816000865af19150503d8060008114610ab0576040519150601f19603f3d011682016040523d82523d6000602084013e610ab5565b606091505b5091505080806020019051810190610acd9190610fe6565b9150505b919050565b600061070584848460006106ba565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610be05760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f1981840301815290829052610b7f9291602001610fbe565b60408051601f1981840301815290829052610b9991610fda565b6000604051808303816000865af19150503d8060008114610bd6576040519150601f19603f3d011682016040523d82523d6000602084013e610bdb565b606091505b505050505b6000805461ff001916610100179055565b808214610cbc577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051610c629060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a16000805160206115db83398151915281604051610c879190610ef6565b60405180910390a16000805160206115db83398151915282604051610cac9190610f22565b60405180910390a1610cbc610ae5565b5050565b6105d78061100483390190565b600080600060608486031215610ce257600080fd5b505081359360208301359350604090920135919050565b8015158114610d0757600080fd5b50565b60008060008060808587031215610d2057600080fd5b8435935060208501359250604085013591506060850135610d4081610cf9565b939692955090935050565b600080600060608486031215610d6057600080fd5b8335925060208401356001600160a01b0381168114610d7e57600080fd5b929592945050506040919091013590565b634e487b7160e01b600052601160045260246000fd5b81810381811115610db857610db8610d8f565b92915050565b600181815b80851115610df9578160001904821115610ddf57610ddf610d8f565b80851615610dec57918102915b93841c9390800290610dc3565b509250929050565b600082610e1057506001610db8565b81610e1d57506000610db8565b8160018114610e335760028114610e3d57610e59565b6001915050610db8565b60ff841115610e4e57610e4e610d8f565b50506001821b610db8565b5060208310610133831016604e8410600b8410161715610e7c575081810a610db8565b610e868383610dbe565b8060001904821115610e9a57610e9a610d8f565b029392505050565b6000610eae8383610e01565b9392505050565b634e487b7160e01b600052601260045260246000fd5b600082610eda57610eda610eb5565b500490565b8082028115828204841417610db857610db8610d8f565b6040808252600a90820152690808115e1c1958dd195960b21b6060820152602081019190915260800190565b6040808252600a9082015269080808081058dd1d585b60b21b6060820152602081019190915260800190565b600082610f5d57610f5d610eb5565b500690565b80820180821115610db857610db8610d8f565b600060208284031215610f8757600080fd5b5051919050565b6000815160005b81811015610faf5760208185018101518683015201610f95565b50600093019283525090919050565b6001600160e01b03198316815260006107056004830184610f8e565b6000610eae8284610f8e565b600060208284031215610ff857600080fd5b8151610eae81610cf956fe608060405234801561001057600080fd5b506105b7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea2646970667358221220843b2a7925f054aa4267ccb704b85ca5db3172d6fe2b6977a4bbeadddcd28f0164736f6c63430008110033b2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a2646970667358221220d7afc70b0ada6633f99b8ae71df9d93f63c9400877f062ac298f36f7182ae1f064736f6c63430008110033", + "sourceMap": "449:5881:30:-:0;;;1572:26:0;;;-1:-1:-1;;1572:26:0;1594:4;1572:26;;;3063:103:30;;;;;;;;;-1:-1:-1;3122:37:30;3086:77;;;-1:-1:-1;;;;;;3086:77:30;;;;;;449:5881;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80638c38922f116100a2578063c060c5f311610071578063c060c5f3146101d3578063c5ba73ed146101e6578063e70dd6cf146101ee578063eea96210146101f6578063fa7626d41461045257600080fd5b80638c38922f146101a35780639f71f14a146101ab578063b967b5a7146101b3578063ba414fa6146101bb57600080fd5b806338505fb0116100de57806338505fb01461015f5780636c676a60146101675780637a8fe3c0146101885780637ed9db591461019057600080fd5b8063174a5be41461011057806330f7c5c31461012f578063344b1478146101445780633493f4ca14610157575b600080fd5b610118600181565b60405160ff90911681526020015b60405180910390f35b61014261013d366004610ccd565b61045f565b005b610142610152366004610ccd565b6105ba565b610118600b81565b610118600281565b61017a610175366004610d0a565b6106ba565b604051908152602001610126565b610118600c81565b61014261019e366004610d4b565b61070d565b610118600a81565b610118600481565b6101426108ce565b6101c36109ab565b6040519015158152602001610126565b61017a6101e1366004610ccd565b610ad6565b610118600381565b610118600081565b61014260046020527ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603c80546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481790915560097ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603d557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13e80548216736b175474e89094c44da98b954eedeac495271d0f17905560027f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13f557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf1408054821673aed0c38402a5d19df6e4c03f4e2dced6e29c1ee91790557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d268054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560037f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d27557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d2880548216735f4ec3df9cbd43714fe2740f5e3616155c5b8419179055635742544360e01b60009081527f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691d980548316732260fac5e5542a773aa44fbcfedf7c193bc2c5991790557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691da557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691db805490911673f4030086522a5beea4988f8ca5b36dbc97bee88c179055565b6000546101c39060ff1681565b6000828411610477576104728484610da5565b610481565b6104818385610da5565b9050806000036104915750505050565b6000841561049f57846104a1565b835b905060006104b084600a610ea2565b6104c6906b033b2e3c9fd0803ce8000000610ecb565b826104dd6b033b2e3c9fd0803ce800000086610edf565b6104e79190610ecb565b109050806105b257604080518181526034818301527f4572726f723a20617070726f782061203d3d2062206e6f742073617469736669606082015273032b2161030b1b1bab930b1bc903234b3b4ba39960651b60808201526020810186905290516000805160206115db8339815191529181900360a00190a16000805160206115db8339815191528660405161057d9190610ef6565b60405180910390a16000805160206115db833981519152856040516105a29190610f22565b60405180910390a16105b2610ae5565b505050505050565b60008284116105d2576105cd8484610da5565b6105dc565b6105dc8385610da5565b905081811115806106b357604080518181526038818301527f4572726f723a20617070726f782061203d3d2062206e6f74207361746973666960608201527f65642c20616363757261637920646966666572656e636520000000000000000060808201526020810185905290516000805160206115db8339815191529181900360a00190a16000805160206115db8339815191528560405161067e9190610ef6565b60405180910390a16000805160206115db833981519152846040516106a39190610f22565b60405180910390a16106b3610ae5565b5050505050565b6000841580156106c8575081155b156106d557506000610705565b8383036106e3575081610705565b836106ee8185610da5565b6106f89087610f4e565b6107029190610f62565b90505b949350505050565b6000838152600460208190526040808320805460019091015491516370a0823160e01b81526001600160a01b0387811694820194909452921692909183906370a0823190602401602060405180830381865afa158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610f75565b600054604080516001600160a01b0389811660208301529181018690529293506201000090910416906370ca10bb9085906060016040516020818303038152906040528051906020012087856107eb9190610f62565b60405160e085901b6001600160e01b03191681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b50506040516370a0823160e01b81526001600160a01b0388811660048301526105b29350861691506370a0823190602401602060405180830381865afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf9190610f75565b6108c98684610f62565b610bf1565b6040516108da90610cc0565b604051809103906000f0801580156108f6573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b039290921691909117905560405161092390610cc0565b604051809103906000f08015801561093f573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b039290921691909117905560405161096c90610cc0565b604051809103906000f080158015610988573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008054610100900460ff16156109cb5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610ad15760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b82840152825180830384018152606083019093526000929091610a59917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001610fbe565b60408051601f1981840301815290829052610a7391610fda565b6000604051808303816000865af19150503d8060008114610ab0576040519150601f19603f3d011682016040523d82523d6000602084013e610ab5565b606091505b5091505080806020019051810190610acd9190610fe6565b9150505b919050565b600061070584848460006106ba565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610be05760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f1981840301815290829052610b7f9291602001610fbe565b60408051601f1981840301815290829052610b9991610fda565b6000604051808303816000865af19150503d8060008114610bd6576040519150601f19603f3d011682016040523d82523d6000602084013e610bdb565b606091505b505050505b6000805461ff001916610100179055565b808214610cbc577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051610c629060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a16000805160206115db83398151915281604051610c879190610ef6565b60405180910390a16000805160206115db83398151915282604051610cac9190610f22565b60405180910390a1610cbc610ae5565b5050565b6105d78061100483390190565b600080600060608486031215610ce257600080fd5b505081359360208301359350604090920135919050565b8015158114610d0757600080fd5b50565b60008060008060808587031215610d2057600080fd5b8435935060208501359250604085013591506060850135610d4081610cf9565b939692955090935050565b600080600060608486031215610d6057600080fd5b8335925060208401356001600160a01b0381168114610d7e57600080fd5b929592945050506040919091013590565b634e487b7160e01b600052601160045260246000fd5b81810381811115610db857610db8610d8f565b92915050565b600181815b80851115610df9578160001904821115610ddf57610ddf610d8f565b80851615610dec57918102915b93841c9390800290610dc3565b509250929050565b600082610e1057506001610db8565b81610e1d57506000610db8565b8160018114610e335760028114610e3d57610e59565b6001915050610db8565b60ff841115610e4e57610e4e610d8f565b50506001821b610db8565b5060208310610133831016604e8410600b8410161715610e7c575081810a610db8565b610e868383610dbe565b8060001904821115610e9a57610e9a610d8f565b029392505050565b6000610eae8383610e01565b9392505050565b634e487b7160e01b600052601260045260246000fd5b600082610eda57610eda610eb5565b500490565b8082028115828204841417610db857610db8610d8f565b6040808252600a90820152690808115e1c1958dd195960b21b6060820152602081019190915260800190565b6040808252600a9082015269080808081058dd1d585b60b21b6060820152602081019190915260800190565b600082610f5d57610f5d610eb5565b500690565b80820180821115610db857610db8610d8f565b600060208284031215610f8757600080fd5b5051919050565b6000815160005b81811015610faf5760208185018101518683015201610f95565b50600093019283525090919050565b6001600160e01b03198316815260006107056004830184610f8e565b6000610eae8284610f8e565b600060208284031215610ff857600080fd5b8151610eae81610cf956fe608060405234801561001057600080fd5b506105b7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea26469706673582212202284e67777fca07e29094068d3e700ce3ff463464acf1e2573fcb253960d116864736f6c63430008110033b2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a264697066735822122026ebb28edd1d473a37e486b2d78d891e9540ee9cd062c2fa8b91d389eca9573564736f6c63430008110033", - "sourceMap": "449:5807:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1671:36;;1706:1;1671:36;;;;;186:4:23;174:17;;;156:36;;144:2;129:18;1671:36:21;;;;;;;;4666:583;;;;;;:::i;:::-;;:::i;:::-;;5300:479;;;;;;:::i;:::-;;:::i;2104:45::-;;2147:2;2104:45;;1755:36;;1790:1;1755:36;;5954:291;;;;;;:::i;:::-;;:::i;:::-;;;1244:25:23;;;1232:2;1217:18;5954:291:21;1098:177:23;2188:45:21;;2231:2;2188:45;;4147:461;;;;;;:::i;:::-;;:::i;2018:45::-;;2061:2;2018:45;;1931:36;;1966:1;1931:36;;3238:184;;;:::i;1819:584:0:-;;;:::i;:::-;;;1872:14:23;;1865:22;1847:41;;1835:2;1820:18;1819:584:0;1707:187:23;5787:159:21;;;;;;:::i;:::-;;:::i;1842:36::-;;1877:1;1842:36;;1581;;1616:1;1581:36;;3546:551;;3589:6;:14;;;:26;;-1:-1:-1;;;;;;3589:26:21;;;840:42;3589:26;;;;3648:1;3626:19;:23;3662:13;:24;;;;914:42;3662:24;;;3718:1;3697:18;:22;3730:18;:63;;;;3751:42;3730:63;;;3806:14;:26;;;;988:42;3806:26;;;3865:1;3843:19;:23;3877:19;:64;;;;3899:42;3877:64;;;-1:-1:-1;;;3589:14:21;3954;;;;:26;;;;1062:42;3954:26;;;3991:19;:23;4025:19;:64;;;;;4047:42;4025:64;;;3546:551;1572:26:0;;;;;;;;;4666:583:21;4755:12;4778:4;4771;:11;:39;;4799:11;4806:4;4799;:11;:::i;:::-;4771:39;;;4785:11;4792:4;4785;:11;:::i;:::-;4755:55;;4825:4;4833:1;4825:9;4821:22;;4836:7;4666:583;;;:::o;4821:22::-;4855:19;4877:9;;:23;;4896:4;4877:23;;;4889:4;4877:23;4855:45;-1:-1:-1;4911:10:21;4962:14;4968:8;4962:2;:14;:::i;:::-;4956:20;;2465:8;4956:20;:::i;:::-;4940:11;4926:10;2465:8;4926:4;:10;:::i;:::-;4925:26;;;;:::i;:::-;4924:53;4911:66;;4995:5;4990:252;;5021:80;;;4180:21:23;;;4237:2;4217:18;;;4210:30;4276:34;4271:2;4256:18;;4249:62;-1:-1:-1;;;4342:3:23;4327:19;;4320:51;4438:4;4423:20;;4416:36;;;5021:80:21;;-1:-1:-1;;;;;;;;;;;5021:80:21;;;;4403:3:23;5021:80:21;;;-1:-1:-1;;;;;;;;;;;5150:4:21;5121:34;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5204:4:21;5175:34;;;;;;:::i;:::-;;;;;;;;5224:6;:4;:6::i;:::-;4744:505;;;4666:583;;;:::o;5300:479::-;5388:18;5416:4;5409;:11;:39;;5437:11;5444:4;5437;:11;:::i;:::-;5409:39;;;5423:11;5430:4;5423;:11;:::i;:::-;5388:60;-1:-1:-1;5472:26:21;;;;;5511:261;;5543:88;;;5501:21:23;;;5558:2;5538:18;;;5531:30;5597:34;5592:2;5577:18;;5570:62;5669:26;5663:3;5648:19;;5641:55;5763:4;5748:20;;5741:36;;;5543:88:21;;-1:-1:-1;;;;;;;;;;;5543:88:21;;;;5728:3:23;5543:88:21;;;-1:-1:-1;;;;;;;;;;;5680:4:21;5651:34;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5734:4:21;5705:34;;;;;;:::i;:::-;;;;;;;;5754:6;:4;:6::i;:::-;5377:402;;5300:479;;;:::o;5954:291::-;6054:7;6083:8;;:20;;;;;6096:7;6095:8;6083:20;6074:163;;;-1:-1:-1;6112:1:21;6105:8;;6074:163;6140:3;6133;:10;6129:108;;-1:-1:-1;6162:3:21;6155:10;;6129:108;6234:3;6221:9;6234:3;6221;:9;:::i;:::-;6214:17;;:3;:17;:::i;:::-;:23;;;;:::i;:::-;6207:30;;6129:108;5954:291;;;;;;:::o;4147:461::-;4225:12;4240:14;;;:6;:14;;;;;;;;:19;;;4286;;;;4330:31;;-1:-1:-1;;;4330:31:21;;-1:-1:-1;;;;;6199:32:23;;;4330:31:21;;;6181:51:23;;;;4240:19:21;;;4286;;4240;;4330:22;;6154:18:23;;4330:31:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4374:4;;4428:25;;;-1:-1:-1;;;;;6624:32:23;;;4428:25:21;;;6606:51:23;6673:18;;;6666:34;;;4316:45:21;;-1:-1:-1;4374:4:21;;;;;;:10;;4399:4;;6579:18:23;;4428:25:21;;;;;;;;;;;;4418:36;;;;;;4498:3;4492;:9;;;;:::i;:::-;4374:139;;;;;;-1:-1:-1;;;;;;4374:139:21;;;-1:-1:-1;;;;;6931:32:23;;;4374:139:21;;;6913:51:23;6980:18;;;6973:34;;;;7023:18;;;7016:34;6886:18;;4374:139:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4535:31:21;;-1:-1:-1;;;4535:31:21;;-1:-1:-1;;;;;6199:32:23;;;4535:31:21;;;6181:51:23;4526:52:21;;-1:-1:-1;4535:22:21;;;-1:-1:-1;4535:22:21;;6154:18:23;;4535:31:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4568:9;4574:3;4568;:9;:::i;:::-;4526:8;:52::i;3238:184::-;3286:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3280:3:21;:17;;-1:-1:-1;;;;;;3280:17:21;-1:-1:-1;;;;;3280:17:21;;;;;;;;;;3327:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3321:3:21;:17;;-1:-1:-1;;;;;;3321:17:21;-1:-1:-1;;;;;3321:17:21;;;;;;;;;;3394:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3388:3:21;:17;;-1:-1:-1;;;;;;3388:17:21;-1:-1:-1;;;;;3388:17:21;;;;;;;;;;3238:184::o;1819:584:0:-;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;2990:42;2978:55;3059:16;1980:374;;2196:43;;;1671:64;2196:43;;;6606:51:23;;;-1:-1:-1;;;6673:18:23;;;6666:34;2196:43:0;;;;;;;;;6579:18:23;;;2196:43:0;;;-1:-1:-1;;1671:64:0;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;5787:159:21:-;5873:7;5900:38;5917:3;5922;5927;5932:5;5900:16;:38::i;2410:424:0:-;2990:42;2978:55;3059:16;2445:359;;2645:67;;;1671:64;2645:67;;;6913:51:23;;;-1:-1:-1;;;6980:18:23;;;6973:34;;;;2705:4:0;7023:18:23;;;7016:34;2482:11:0;;1671:64;2579:43;;6886:18:23;;2645:67:0;;;-1:-1:-1;;2645:67:0;;;;;;;;;;2534:196;;;2645:67;2534:196;;:::i;:::-;;;;-1:-1:-1;;2534:196:0;;;;;;;;;;2499:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2445:359:0;2813:7;:14;;-1:-1:-1;;2813:14:0;;;;;2410:424::o;5202:262::-;5264:1;5259;:6;5255:203;;5286:41;;;;;8596:2:23;8578:21;;;8635:2;8615:18;;;8608:30;8674:34;8669:2;8654:18;;8647:62;-1:-1:-1;;;8740:2:23;8725:18;;8718:32;8782:3;8767:19;;8394:398;5286:41:0;;;;;;;;-1:-1:-1;;;;;;;;;;;5375:1:0;5346:31;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5425:1:0;5396:31;;;;;;:::i;:::-;;;;;;;;5441:6;:4;:6::i;:::-;5202:262;;:::o;-1:-1:-1:-;;;;;;;;:::o;203:316:23:-;280:6;288;296;349:2;337:9;328:7;324:23;320:32;317:52;;;365:1;362;355:12;317:52;-1:-1:-1;;388:23:23;;;458:2;443:18;;430:32;;-1:-1:-1;509:2:23;494:18;;;481:32;;203:316;-1:-1:-1;203:316:23:o;524:118::-;610:5;603:13;596:21;589:5;586:32;576:60;;632:1;629;622:12;576:60;524:118;:::o;647:446::-;730:6;738;746;754;807:3;795:9;786:7;782:23;778:33;775:53;;;824:1;821;814:12;775:53;860:9;847:23;837:33;;917:2;906:9;902:18;889:32;879:42;;968:2;957:9;953:18;940:32;930:42;;1022:2;1011:9;1007:18;994:32;1035:28;1057:5;1035:28;:::i;:::-;647:446;;;;-1:-1:-1;647:446:23;;-1:-1:-1;;647:446:23:o;1280:422::-;1357:6;1365;1373;1426:2;1414:9;1405:7;1401:23;1397:32;1394:52;;;1442:1;1439;1432:12;1394:52;1465:23;;;-1:-1:-1;1538:2:23;1523:18;;1510:32;-1:-1:-1;;;;;1571:31:23;;1561:42;;1551:70;;1617:1;1614;1607:12;1551:70;1280:422;;1640:5;;-1:-1:-1;;;1692:2:23;1677:18;;;;1664:32;;1280:422::o;1899:127::-;1960:10;1955:3;1951:20;1948:1;1941:31;1991:4;1988:1;1981:15;2015:4;2012:1;2005:15;2031:128;2098:9;;;2119:11;;;2116:37;;;2133:18;;:::i;:::-;2031:128;;;;:::o;2164:422::-;2253:1;2296:5;2253:1;2310:270;2331:7;2321:8;2318:21;2310:270;;;2390:4;2386:1;2382:6;2378:17;2372:4;2369:27;2366:53;;;2399:18;;:::i;:::-;2449:7;2439:8;2435:22;2432:55;;;2469:16;;;;2432:55;2548:22;;;;2508:15;;;;2310:270;;;2314:3;2164:422;;;;;:::o;2591:806::-;2640:5;2670:8;2660:80;;-1:-1:-1;2711:1:23;2725:5;;2660:80;2759:4;2749:76;;-1:-1:-1;2796:1:23;2810:5;;2749:76;2841:4;2859:1;2854:59;;;;2927:1;2922:130;;;;2834:218;;2854:59;2884:1;2875:10;;2898:5;;;2922:130;2959:3;2949:8;2946:17;2943:43;;;2966:18;;:::i;:::-;-1:-1:-1;;3022:1:23;3008:16;;3037:5;;2834:218;;3136:2;3126:8;3123:16;3117:3;3111:4;3108:13;3104:36;3098:2;3088:8;3085:16;3080:2;3074:4;3071:12;3067:35;3064:77;3061:159;;;-1:-1:-1;3173:19:23;;;3205:5;;3061:159;3252:34;3277:8;3271:4;3252:34;:::i;:::-;3322:6;3318:1;3314:6;3310:19;3301:7;3298:32;3295:58;;;3333:18;;:::i;:::-;3371:20;;2591:806;-1:-1:-1;;;2591:806:23:o;3402:131::-;3462:5;3491:36;3518:8;3512:4;3491:36;:::i;:::-;3482:45;3402:131;-1:-1:-1;;;3402:131:23:o;3538:127::-;3599:10;3594:3;3590:20;3587:1;3580:31;3630:4;3627:1;3620:15;3654:4;3651:1;3644:15;3670:120;3710:1;3736;3726:35;;3741:18;;:::i;:::-;-1:-1:-1;3775:9:23;;3670:120::o;3795:168::-;3868:9;;;3899;;3916:15;;;3910:22;;3896:37;3886:71;;3937:18;;:::i;4463:408::-;4693:2;4675:21;;;4732:2;4712:18;;;4705:30;-1:-1:-1;;;4766:2:23;4751:18;;4744:40;4851:4;4836:20;;4829:36;;;;4816:3;4801:19;;4463:408::o;4876:::-;5106:2;5088:21;;;5145:2;5125:18;;;5118:30;-1:-1:-1;;;5179:2:23;5164:18;;5157:40;5264:4;5249:20;;5242:36;;;;5229:3;5214:19;;4876:408::o;5788:112::-;5820:1;5846;5836:35;;5851:18;;:::i;:::-;-1:-1:-1;5885:9:23;;5788:112::o;5905:125::-;5970:9;;;5991:10;;;5988:36;;;6004:18;;:::i;6243:184::-;6313:6;6366:2;6354:9;6345:7;6341:23;6337:32;6334:52;;;6382:1;6379;6372:12;6334:52;-1:-1:-1;6405:16:23;;6243:184;-1:-1:-1;6243:184:23:o;7340:322::-;7381:3;7419:5;7413:12;7443:1;7453:128;7467:6;7464:1;7461:13;7453:128;;;7564:4;7549:13;;;7545:24;;7539:31;7526:11;;;7519:52;7482:12;7453:128;;;-1:-1:-1;7636:1:23;7600:16;;7625:13;;;-1:-1:-1;7600:16:23;;7340:322;-1:-1:-1;7340:322:23:o;7667:278::-;-1:-1:-1;;;;;;7852:33:23;;7840:46;;7822:3;7902:37;7936:1;7927:11;;7919:6;7902:37;:::i;7950:189::-;8079:3;8104:29;8129:3;8121:6;8104:29;:::i;8144:245::-;8211:6;8264:2;8252:9;8243:7;8239:23;8235:32;8232:52;;;8280:1;8277;8270:12;8232:52;8312:9;8306:16;8331:28;8353:5;8331:28;:::i", + "object": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80638c38922f116100a2578063c060c5f311610071578063c060c5f3146101d3578063c5ba73ed146101e6578063e70dd6cf146101ee578063eea96210146101f6578063fa7626d41461045257600080fd5b80638c38922f146101a35780639f71f14a146101ab578063b967b5a7146101b3578063ba414fa6146101bb57600080fd5b806338505fb0116100de57806338505fb01461015f5780636c676a60146101675780637a8fe3c0146101885780637ed9db591461019057600080fd5b8063174a5be41461011057806330f7c5c31461012f578063344b1478146101445780633493f4ca14610157575b600080fd5b610118600181565b60405160ff90911681526020015b60405180910390f35b61014261013d366004610ccd565b61045f565b005b610142610152366004610ccd565b6105ba565b610118600b81565b610118600281565b61017a610175366004610d0a565b6106ba565b604051908152602001610126565b610118600c81565b61014261019e366004610d4b565b61070d565b610118600a81565b610118600481565b6101426108ce565b6101c36109ab565b6040519015158152602001610126565b61017a6101e1366004610ccd565b610ad6565b610118600381565b610118600081565b61014260046020527ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603c80546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481790915560097ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603d557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13e80548216736b175474e89094c44da98b954eedeac495271d0f17905560027f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13f557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf1408054821673aed0c38402a5d19df6e4c03f4e2dced6e29c1ee91790557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d268054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560037f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d27557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d2880548216735f4ec3df9cbd43714fe2740f5e3616155c5b8419179055635742544360e01b60009081527f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691d980548316732260fac5e5542a773aa44fbcfedf7c193bc2c5991790557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691da557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691db805490911673f4030086522a5beea4988f8ca5b36dbc97bee88c179055565b6000546101c39060ff1681565b6000828411610477576104728484610da5565b610481565b6104818385610da5565b9050806000036104915750505050565b6000841561049f57846104a1565b835b905060006104b084600a610ea2565b6104c6906b033b2e3c9fd0803ce8000000610ecb565b826104dd6b033b2e3c9fd0803ce800000086610edf565b6104e79190610ecb565b109050806105b257604080518181526034818301527f4572726f723a20617070726f782061203d3d2062206e6f742073617469736669606082015273032b2161030b1b1bab930b1bc903234b3b4ba39960651b60808201526020810186905290516000805160206115db8339815191529181900360a00190a16000805160206115db8339815191528660405161057d9190610ef6565b60405180910390a16000805160206115db833981519152856040516105a29190610f22565b60405180910390a16105b2610ae5565b505050505050565b60008284116105d2576105cd8484610da5565b6105dc565b6105dc8385610da5565b905081811115806106b357604080518181526038818301527f4572726f723a20617070726f782061203d3d2062206e6f74207361746973666960608201527f65642c20616363757261637920646966666572656e636520000000000000000060808201526020810185905290516000805160206115db8339815191529181900360a00190a16000805160206115db8339815191528560405161067e9190610ef6565b60405180910390a16000805160206115db833981519152846040516106a39190610f22565b60405180910390a16106b3610ae5565b5050505050565b6000841580156106c8575081155b156106d557506000610705565b8383036106e3575081610705565b836106ee8185610da5565b6106f89087610f4e565b6107029190610f62565b90505b949350505050565b6000838152600460208190526040808320805460019091015491516370a0823160e01b81526001600160a01b0387811694820194909452921692909183906370a0823190602401602060405180830381865afa158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610f75565b600054604080516001600160a01b0389811660208301529181018690529293506201000090910416906370ca10bb9085906060016040516020818303038152906040528051906020012087856107eb9190610f62565b60405160e085901b6001600160e01b03191681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b50506040516370a0823160e01b81526001600160a01b0388811660048301526105b29350861691506370a0823190602401602060405180830381865afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf9190610f75565b6108c98684610f62565b610bf1565b6040516108da90610cc0565b604051809103906000f0801580156108f6573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b039290921691909117905560405161092390610cc0565b604051809103906000f08015801561093f573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b039290921691909117905560405161096c90610cc0565b604051809103906000f080158015610988573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008054610100900460ff16156109cb5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610ad15760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b82840152825180830384018152606083019093526000929091610a59917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001610fbe565b60408051601f1981840301815290829052610a7391610fda565b6000604051808303816000865af19150503d8060008114610ab0576040519150601f19603f3d011682016040523d82523d6000602084013e610ab5565b606091505b5091505080806020019051810190610acd9190610fe6565b9150505b919050565b600061070584848460006106ba565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610be05760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f1981840301815290829052610b7f9291602001610fbe565b60408051601f1981840301815290829052610b9991610fda565b6000604051808303816000865af19150503d8060008114610bd6576040519150601f19603f3d011682016040523d82523d6000602084013e610bdb565b606091505b505050505b6000805461ff001916610100179055565b808214610cbc577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051610c629060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a16000805160206115db83398151915281604051610c879190610ef6565b60405180910390a16000805160206115db83398151915282604051610cac9190610f22565b60405180910390a1610cbc610ae5565b5050565b6105d78061100483390190565b600080600060608486031215610ce257600080fd5b505081359360208301359350604090920135919050565b8015158114610d0757600080fd5b50565b60008060008060808587031215610d2057600080fd5b8435935060208501359250604085013591506060850135610d4081610cf9565b939692955090935050565b600080600060608486031215610d6057600080fd5b8335925060208401356001600160a01b0381168114610d7e57600080fd5b929592945050506040919091013590565b634e487b7160e01b600052601160045260246000fd5b81810381811115610db857610db8610d8f565b92915050565b600181815b80851115610df9578160001904821115610ddf57610ddf610d8f565b80851615610dec57918102915b93841c9390800290610dc3565b509250929050565b600082610e1057506001610db8565b81610e1d57506000610db8565b8160018114610e335760028114610e3d57610e59565b6001915050610db8565b60ff841115610e4e57610e4e610d8f565b50506001821b610db8565b5060208310610133831016604e8410600b8410161715610e7c575081810a610db8565b610e868383610dbe565b8060001904821115610e9a57610e9a610d8f565b029392505050565b6000610eae8383610e01565b9392505050565b634e487b7160e01b600052601260045260246000fd5b600082610eda57610eda610eb5565b500490565b8082028115828204841417610db857610db8610d8f565b6040808252600a90820152690808115e1c1958dd195960b21b6060820152602081019190915260800190565b6040808252600a9082015269080808081058dd1d585b60b21b6060820152602081019190915260800190565b600082610f5d57610f5d610eb5565b500690565b80820180821115610db857610db8610d8f565b600060208284031215610f8757600080fd5b5051919050565b6000815160005b81811015610faf5760208185018101518683015201610f95565b50600093019283525090919050565b6001600160e01b03198316815260006107056004830184610f8e565b6000610eae8284610f8e565b600060208284031215610ff857600080fd5b8151610eae81610cf956fe608060405234801561001057600080fd5b506105b7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea2646970667358221220843b2a7925f054aa4267ccb704b85ca5db3172d6fe2b6977a4bbeadddcd28f0164736f6c63430008110033b2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a2646970667358221220d7afc70b0ada6633f99b8ae71df9d93f63c9400877f062ac298f36f7182ae1f064736f6c63430008110033", + "sourceMap": "449:5881:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1745:36;;1780:1;1745:36;;;;;186:4:32;174:17;;;156:36;;144:2;129:18;1745:36:30;;;;;;;;4740:583;;;;;;:::i;:::-;;:::i;:::-;;5374:479;;;;;;:::i;:::-;;:::i;2178:45::-;;2221:2;2178:45;;1829:36;;1864:1;1829:36;;6028:291;;;;;;:::i;:::-;;:::i;:::-;;;1244:25:32;;;1232:2;1217:18;6028:291:30;1098:177:32;2262:45:30;;2305:2;2262:45;;4221:461;;;;;;:::i;:::-;;:::i;2092:45::-;;2135:2;2092:45;;2005:36;;2040:1;2005:36;;3312:184;;;:::i;1819:584:0:-;;;:::i;:::-;;;1872:14:32;;1865:22;1847:41;;1835:2;1820:18;1819:584:0;1707:187:32;5861:159:30;;;;;;:::i;:::-;;:::i;1916:36::-;;1951:1;1916:36;;1655;;1690:1;1655:36;;3620:551;;3663:6;:14;;;:26;;-1:-1:-1;;;;;;3663:26:30;;;840:42;3663:26;;;;3722:1;3700:19;:23;3736:13;:24;;;;914:42;3736:24;;;3792:1;3771:18;:22;3804:18;:63;;;;3825:42;3804:63;;;3880:14;:26;;;;988:42;3880:26;;;3939:1;3917:19;:23;3951:19;:64;;;;3973:42;3951:64;;;-1:-1:-1;;;3663:14:30;4028;;;;:26;;;;1062:42;4028:26;;;4065:19;:23;4099:19;:64;;;;;4121:42;4099:64;;;3620:551;1572:26:0;;;;;;;;;4740:583:30;4829:12;4852:4;4845;:11;:39;;4873:11;4880:4;4873;:11;:::i;:::-;4845:39;;;4859:11;4866:4;4859;:11;:::i;:::-;4829:55;;4899:4;4907:1;4899:9;4895:22;;4910:7;4740:583;;;:::o;4895:22::-;4929:19;4951:9;;:23;;4970:4;4951:23;;;4963:4;4951:23;4929:45;-1:-1:-1;4985:10:30;5036:14;5042:8;5036:2;:14;:::i;:::-;5030:20;;2539:8;5030:20;:::i;:::-;5014:11;5000:10;2539:8;5000:4;:10;:::i;:::-;4999:26;;;;:::i;:::-;4998:53;4985:66;;5069:5;5064:252;;5095:80;;;4180:21:32;;;4237:2;4217:18;;;4210:30;4276:34;4271:2;4256:18;;4249:62;-1:-1:-1;;;4342:3:32;4327:19;;4320:51;4438:4;4423:20;;4416:36;;;5095:80:30;;-1:-1:-1;;;;;;;;;;;5095:80:30;;;;4403:3:32;5095:80:30;;;-1:-1:-1;;;;;;;;;;;5224:4:30;5195:34;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5278:4:30;5249:34;;;;;;:::i;:::-;;;;;;;;5298:6;:4;:6::i;:::-;4818:505;;;4740:583;;;:::o;5374:479::-;5462:18;5490:4;5483;:11;:39;;5511:11;5518:4;5511;:11;:::i;:::-;5483:39;;;5497:11;5504:4;5497;:11;:::i;:::-;5462:60;-1:-1:-1;5546:26:30;;;;;5585:261;;5617:88;;;5501:21:32;;;5558:2;5538:18;;;5531:30;5597:34;5592:2;5577:18;;5570:62;5669:26;5663:3;5648:19;;5641:55;5763:4;5748:20;;5741:36;;;5617:88:30;;-1:-1:-1;;;;;;;;;;;5617:88:30;;;;5728:3:32;5617:88:30;;;-1:-1:-1;;;;;;;;;;;5754:4:30;5725:34;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5808:4:30;5779:34;;;;;;:::i;:::-;;;;;;;;5828:6;:4;:6::i;:::-;5451:402;;5374:479;;;:::o;6028:291::-;6128:7;6157:8;;:20;;;;;6170:7;6169:8;6157:20;6148:163;;;-1:-1:-1;6186:1:30;6179:8;;6148:163;6214:3;6207;:10;6203:108;;-1:-1:-1;6236:3:30;6229:10;;6203:108;6308:3;6295:9;6308:3;6295;:9;:::i;:::-;6288:17;;:3;:17;:::i;:::-;:23;;;;:::i;:::-;6281:30;;6203:108;6028:291;;;;;;:::o;4221:461::-;4299:12;4314:14;;;:6;:14;;;;;;;;:19;;;4360;;;;4404:31;;-1:-1:-1;;;4404:31:30;;-1:-1:-1;;;;;6199:32:32;;;4404:31:30;;;6181:51:32;;;;4314:19:30;;;4360;;4314;;4404:22;;6154:18:32;;4404:31:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4448:4;;4502:25;;;-1:-1:-1;;;;;6624:32:32;;;4502:25:30;;;6606:51:32;6673:18;;;6666:34;;;4390:45:30;;-1:-1:-1;4448:4:30;;;;;;:10;;4473:4;;6579:18:32;;4502:25:30;;;;;;;;;;;;4492:36;;;;;;4572:3;4566;:9;;;;:::i;:::-;4448:139;;;;;;-1:-1:-1;;;;;;4448:139:30;;;-1:-1:-1;;;;;6931:32:32;;;4448:139:30;;;6913:51:32;6980:18;;;6973:34;;;;7023:18;;;7016:34;6886:18;;4448:139:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4609:31:30;;-1:-1:-1;;;4609:31:30;;-1:-1:-1;;;;;6199:32:32;;;4609:31:30;;;6181:51:32;4600:52:30;;-1:-1:-1;4609:22:30;;;-1:-1:-1;4609:22:30;;6154:18:32;;4609:31:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4642:9;4648:3;4642;:9;:::i;:::-;4600:8;:52::i;3312:184::-;3360:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3354:3:30;:17;;-1:-1:-1;;;;;;3354:17:30;-1:-1:-1;;;;;3354:17:30;;;;;;;;;;3401:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3395:3:30;:17;;-1:-1:-1;;;;;;3395:17:30;-1:-1:-1;;;;;3395:17:30;;;;;;;;;;3468:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3462:3:30;:17;;-1:-1:-1;;;;;;3462:17:30;-1:-1:-1;;;;;3462:17:30;;;;;;;;;;3312:184::o;1819:584:0:-;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;2990:42;2978:55;3059:16;1980:374;;2196:43;;;1671:64;2196:43;;;6606:51:32;;;-1:-1:-1;;;6673:18:32;;;6666:34;2196:43:0;;;;;;;;;6579:18:32;;;2196:43:0;;;-1:-1:-1;;1671:64:0;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;5861:159:30:-;5947:7;5974:38;5991:3;5996;6001;6006:5;5974:16;:38::i;2410:424:0:-;2990:42;2978:55;3059:16;2445:359;;2645:67;;;1671:64;2645:67;;;6913:51:32;;;-1:-1:-1;;;6980:18:32;;;6973:34;;;;2705:4:0;7023:18:32;;;7016:34;2482:11:0;;1671:64;2579:43;;6886:18:32;;2645:67:0;;;-1:-1:-1;;2645:67:0;;;;;;;;;;2534:196;;;2645:67;2534:196;;:::i;:::-;;;;-1:-1:-1;;2534:196:0;;;;;;;;;;2499:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2445:359:0;2813:7;:14;;-1:-1:-1;;2813:14:0;;;;;2410:424::o;5202:262::-;5264:1;5259;:6;5255:203;;5286:41;;;;;8596:2:32;8578:21;;;8635:2;8615:18;;;8608:30;8674:34;8669:2;8654:18;;8647:62;-1:-1:-1;;;8740:2:32;8725:18;;8718:32;8782:3;8767:19;;8394:398;5286:41:0;;;;;;;;-1:-1:-1;;;;;;;;;;;5375:1:0;5346:31;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5425:1:0;5396:31;;;;;;:::i;:::-;;;;;;;;5441:6;:4;:6::i;:::-;5202:262;;:::o;-1:-1:-1:-;;;;;;;;:::o;203:316:32:-;280:6;288;296;349:2;337:9;328:7;324:23;320:32;317:52;;;365:1;362;355:12;317:52;-1:-1:-1;;388:23:32;;;458:2;443:18;;430:32;;-1:-1:-1;509:2:32;494:18;;;481:32;;203:316;-1:-1:-1;203:316:32:o;524:118::-;610:5;603:13;596:21;589:5;586:32;576:60;;632:1;629;622:12;576:60;524:118;:::o;647:446::-;730:6;738;746;754;807:3;795:9;786:7;782:23;778:33;775:53;;;824:1;821;814:12;775:53;860:9;847:23;837:33;;917:2;906:9;902:18;889:32;879:42;;968:2;957:9;953:18;940:32;930:42;;1022:2;1011:9;1007:18;994:32;1035:28;1057:5;1035:28;:::i;:::-;647:446;;;;-1:-1:-1;647:446:32;;-1:-1:-1;;647:446:32:o;1280:422::-;1357:6;1365;1373;1426:2;1414:9;1405:7;1401:23;1397:32;1394:52;;;1442:1;1439;1432:12;1394:52;1465:23;;;-1:-1:-1;1538:2:32;1523:18;;1510:32;-1:-1:-1;;;;;1571:31:32;;1561:42;;1551:70;;1617:1;1614;1607:12;1551:70;1280:422;;1640:5;;-1:-1:-1;;;1692:2:32;1677:18;;;;1664:32;;1280:422::o;1899:127::-;1960:10;1955:3;1951:20;1948:1;1941:31;1991:4;1988:1;1981:15;2015:4;2012:1;2005:15;2031:128;2098:9;;;2119:11;;;2116:37;;;2133:18;;:::i;:::-;2031:128;;;;:::o;2164:422::-;2253:1;2296:5;2253:1;2310:270;2331:7;2321:8;2318:21;2310:270;;;2390:4;2386:1;2382:6;2378:17;2372:4;2369:27;2366:53;;;2399:18;;:::i;:::-;2449:7;2439:8;2435:22;2432:55;;;2469:16;;;;2432:55;2548:22;;;;2508:15;;;;2310:270;;;2314:3;2164:422;;;;;:::o;2591:806::-;2640:5;2670:8;2660:80;;-1:-1:-1;2711:1:32;2725:5;;2660:80;2759:4;2749:76;;-1:-1:-1;2796:1:32;2810:5;;2749:76;2841:4;2859:1;2854:59;;;;2927:1;2922:130;;;;2834:218;;2854:59;2884:1;2875:10;;2898:5;;;2922:130;2959:3;2949:8;2946:17;2943:43;;;2966:18;;:::i;:::-;-1:-1:-1;;3022:1:32;3008:16;;3037:5;;2834:218;;3136:2;3126:8;3123:16;3117:3;3111:4;3108:13;3104:36;3098:2;3088:8;3085:16;3080:2;3074:4;3071:12;3067:35;3064:77;3061:159;;;-1:-1:-1;3173:19:32;;;3205:5;;3061:159;3252:34;3277:8;3271:4;3252:34;:::i;:::-;3322:6;3318:1;3314:6;3310:19;3301:7;3298:32;3295:58;;;3333:18;;:::i;:::-;3371:20;;2591:806;-1:-1:-1;;;2591:806:32:o;3402:131::-;3462:5;3491:36;3518:8;3512:4;3491:36;:::i;:::-;3482:45;3402:131;-1:-1:-1;;;3402:131:32:o;3538:127::-;3599:10;3594:3;3590:20;3587:1;3580:31;3630:4;3627:1;3620:15;3654:4;3651:1;3644:15;3670:120;3710:1;3736;3726:35;;3741:18;;:::i;:::-;-1:-1:-1;3775:9:32;;3670:120::o;3795:168::-;3868:9;;;3899;;3916:15;;;3910:22;;3896:37;3886:71;;3937:18;;:::i;4463:408::-;4693:2;4675:21;;;4732:2;4712:18;;;4705:30;-1:-1:-1;;;4766:2:32;4751:18;;4744:40;4851:4;4836:20;;4829:36;;;;4816:3;4801:19;;4463:408::o;4876:::-;5106:2;5088:21;;;5145:2;5125:18;;;5118:30;-1:-1:-1;;;5179:2:32;5164:18;;5157:40;5264:4;5249:20;;5242:36;;;;5229:3;5214:19;;4876:408::o;5788:112::-;5820:1;5846;5836:35;;5851:18;;:::i;:::-;-1:-1:-1;5885:9:32;;5788:112::o;5905:125::-;5970:9;;;5991:10;;;5988:36;;;6004:18;;:::i;6243:184::-;6313:6;6366:2;6354:9;6345:7;6341:23;6337:32;6334:52;;;6382:1;6379;6372:12;6334:52;-1:-1:-1;6405:16:32;;6243:184;-1:-1:-1;6243:184:32:o;7340:322::-;7381:3;7419:5;7413:12;7443:1;7453:128;7467:6;7464:1;7461:13;7453:128;;;7564:4;7549:13;;;7545:24;;7539:31;7526:11;;;7519:52;7482:12;7453:128;;;-1:-1:-1;7636:1:32;7600:16;;7625:13;;;-1:-1:-1;7600:16:32;;7340:322;-1:-1:-1;7340:322:32:o;7667:278::-;-1:-1:-1;;;;;;7852:33:32;;7840:46;;7822:3;7902:37;7936:1;7927:11;;7919:6;7902:37;:::i;7950:189::-;8079:3;8104:29;8129:3;8121:6;8104:29;:::i;8144:245::-;8211:6;8264:2;8252:9;8243:7;8239:23;8235:32;8232:52;;;8280:1;8277;8270:12;8232:52;8312:9;8306:16;8331:28;8353:5;8331:28;:::i", "linkReferences": {} }, "methodIdentifiers": { @@ -655,7 +655,7 @@ "withinDiff(uint256,uint256,uint256)": "344b1478", "withinPrecision(uint256,uint256,uint256)": "30f7c5c3" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INTEREST_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LATEFEE_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PREMIUM_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"nonZero\",\"type\":\"bool\"}],\"name\":\"constrictToRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"constrictToRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createActors\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"symbol\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUpTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"val1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedDiff\",\"type\":\"uint256\"}],\"name\":\"withinDiff\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"val1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accuracy\",\"type\":\"uint256\"}],\"name\":\"withinPrecision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/Utility.sol\":\"Utility\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xcf17bed19a42d40b15e584cfc57b1cef2b2b0e55d812f6740afe2c5c4bf801d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78e8f19f8b8b6107a39d892d073cfeb8872cce4d5c8e7957d29941e092e16fea\",\"dweb:/ipfs/QmYQfx7UYDjSx77d8WmbveFkXK6AyrUfYUdxvufGLbVPSm\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xe4913fabc9dbebe2ebb4ba4eaf629380a71b88b255fabc05492990bfa3b185bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1989ae3326aafbbf80f75036869d5ea3c752614dfce7df17ce0912a7a16dbb7\",\"dweb:/ipfs/QmSQju3J4cHLZeVsnWk53it94W2N243mvbyx42hhV5BxED\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"src/interfaces/Interfaces.sol\":{\"keccak256\":\"0x741b318f522ba8451f4a2e40afcf59e995484318fabe7c57adeba3124bbd7e04\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dba0a37a10519080f892d5c8b87a0ec026ef73492195a901e49f74766b5915f7\",\"dweb:/ipfs/QmduauRea8YdqJaMeHiYH2tRtbydoqgVirSaTzbXMoEjYX\"]},\"src/users/Actor.sol\":{\"keccak256\":\"0x4d9d9176a043f8212d9f383afa33565fcc83845346ae77d6b4bd80a5ece31b5e\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://6c9d789e1e106682d4ee38523b8b8af1b02903aba1079e5dc2ec31ecf709f96a\",\"dweb:/ipfs/QmSuGiTD8dPDXBLU4B3EoJK2zyQz3MQ9GKYiWzPyJnasRb\"]},\"test/Utility.sol\":{\"keccak256\":\"0xcea126c8754daffe443e2328ce2424b7b3dcafec7f3bb73c1f85c1502849552f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://386bb899985ba398a7e34cc5a15c99c73c3a55b4d40356aa01f1147a8b377775\",\"dweb:/ipfs/QmSQE7R4iNQhVyNSWj9Gs839udCrTm2EiuvezJLuwS7vds\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INTEREST_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LATEFEE_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PREMIUM_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"nonZero\",\"type\":\"bool\"}],\"name\":\"constrictToRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"constrictToRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createActors\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"symbol\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUpTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"val1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedDiff\",\"type\":\"uint256\"}],\"name\":\"withinDiff\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"val1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accuracy\",\"type\":\"uint256\"}],\"name\":\"withinPrecision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/Utility.sol\":\"Utility\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xcf17bed19a42d40b15e584cfc57b1cef2b2b0e55d812f6740afe2c5c4bf801d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78e8f19f8b8b6107a39d892d073cfeb8872cce4d5c8e7957d29941e092e16fea\",\"dweb:/ipfs/QmYQfx7UYDjSx77d8WmbveFkXK6AyrUfYUdxvufGLbVPSm\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xe4913fabc9dbebe2ebb4ba4eaf629380a71b88b255fabc05492990bfa3b185bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1989ae3326aafbbf80f75036869d5ea3c752614dfce7df17ce0912a7a16dbb7\",\"dweb:/ipfs/QmSQju3J4cHLZeVsnWk53it94W2N243mvbyx42hhV5BxED\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be\",\"dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA\"]},\"src/users/Actor.sol\":{\"keccak256\":\"0x6ad8911c2d305f1bac636ad070f00e47cb2912c78883ea24698030b41a39ccd3\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://917f42c979b5f2c9bad3cd2c5d34f8caec92282536e6f938e7e20dd1925c4843\",\"dweb:/ipfs/QmYmTcZ3oEDWPUnCy6BfrpRMMeMyhe7gF423HbNSPatXs5\"]},\"test/Utility.sol\":{\"keccak256\":\"0x99dbec5203c841f8f092ac42644aa9e24eb927767826dcdf06addc5d5cbea135\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ecd75e3b538d0eb4404ee763ae474c9e4e64cf1e0804795a6787cedef3c0eeda\",\"dweb:/ipfs/QmTwdFYFVDgVZpg3ebGcVr9vF5ffvcZtLzsdJnkRChxL7s\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.17+commit.8df45f5f" @@ -1425,27 +1425,27 @@ ], "license": "MIT" }, - "src/interfaces/Interfaces.sol": { - "keccak256": "0x741b318f522ba8451f4a2e40afcf59e995484318fabe7c57adeba3124bbd7e04", + "src/interfaces/IERC20.sol": { + "keccak256": "0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f", "urls": [ - "bzz-raw://dba0a37a10519080f892d5c8b87a0ec026ef73492195a901e49f74766b5915f7", - "dweb:/ipfs/QmduauRea8YdqJaMeHiYH2tRtbydoqgVirSaTzbXMoEjYX" + "bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be", + "dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA" ], "license": "GPL-3.0-or-later" }, "src/users/Actor.sol": { - "keccak256": "0x4d9d9176a043f8212d9f383afa33565fcc83845346ae77d6b4bd80a5ece31b5e", + "keccak256": "0x6ad8911c2d305f1bac636ad070f00e47cb2912c78883ea24698030b41a39ccd3", "urls": [ - "bzz-raw://6c9d789e1e106682d4ee38523b8b8af1b02903aba1079e5dc2ec31ecf709f96a", - "dweb:/ipfs/QmSuGiTD8dPDXBLU4B3EoJK2zyQz3MQ9GKYiWzPyJnasRb" + "bzz-raw://917f42c979b5f2c9bad3cd2c5d34f8caec92282536e6f938e7e20dd1925c4843", + "dweb:/ipfs/QmYmTcZ3oEDWPUnCy6BfrpRMMeMyhe7gF423HbNSPatXs5" ], "license": "AGPL-3.0-or-later" }, "test/Utility.sol": { - "keccak256": "0xcea126c8754daffe443e2328ce2424b7b3dcafec7f3bb73c1f85c1502849552f", + "keccak256": "0x99dbec5203c841f8f092ac42644aa9e24eb927767826dcdf06addc5d5cbea135", "urls": [ - "bzz-raw://386bb899985ba398a7e34cc5a15c99c73c3a55b4d40356aa01f1147a8b377775", - "dweb:/ipfs/QmSQE7R4iNQhVyNSWj9Gs839udCrTm2EiuvezJLuwS7vds" + "bzz-raw://ecd75e3b538d0eb4404ee763ae474c9e4e64cf1e0804795a6787cedef3c0eeda", + "dweb:/ipfs/QmTwdFYFVDgVZpg3ebGcVr9vF5ffvcZtLzsdJnkRChxL7s" ], "license": "AGPL-3.0-or-later" } @@ -1454,19 +1454,19 @@ }, "ast": { "absolutePath": "test/Utility.sol", - "id": 27933, + "id": 32081, "exportedSymbols": { "Actor": [ - 27385 + 30379 ], "DSTest": [ 1786 ], "Hevm": [ - 27404 + 31549 ], "IERC20": [ - 26425 + 29158 ], "StdAssertions": [ 2708 @@ -1490,10 +1490,10 @@ 1843 ], "User": [ - 27412 + 31557 ], "Utility": [ - 27932 + 32080 ], "Vm": [ 9352 @@ -1518,12 +1518,12 @@ ] }, "nodeType": "SourceUnit", - "src": "47:6209:21", + "src": "47:6283:30", "nodes": [ { - "id": 27387, + "id": 31532, "nodeType": "PragmaDirective", - "src": "47:23:21", + "src": "47:23:30", "nodes": [], "literals": [ "solidity", @@ -1533,60 +1533,60 @@ ] }, { - "id": 27388, + "id": 31533, "nodeType": "ImportDirective", - "src": "74:32:21", + "src": "74:32:30", "nodes": [], "absolutePath": "src/users/Actor.sol", "file": "../src/users/Actor.sol", "nameLocation": "-1:-1:-1", - "scope": 27933, - "sourceUnit": 27386, + "scope": 32081, + "sourceUnit": 30380, "symbolAliases": [], "unitAlias": "" }, { - "id": 27389, + "id": 31534, "nodeType": "ImportDirective", - "src": "110:39:21", + "src": "110:39:30", "nodes": [], "absolutePath": "lib/forge-std/src/Test.sol", "file": "../lib/forge-std/src/Test.sol", "nameLocation": "-1:-1:-1", - "scope": 27933, + "scope": 32081, "sourceUnit": 8196, "symbolAliases": [], "unitAlias": "" }, { - "id": 27404, + "id": 31549, "nodeType": "ContractDefinition", - "src": "153:112:21", + "src": "153:112:30", "nodes": [ { - "id": 27394, + "id": 31539, "nodeType": "FunctionDefinition", - "src": "175:32:21", + "src": "175:32:30", "nodes": [], "functionSelector": "e5d6bf02", "implemented": false, "kind": "function", "modifiers": [], "name": "warp", - "nameLocation": "184:4:21", + "nameLocation": "184:4:30", "parameters": { - "id": 27392, + "id": 31537, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27391, + "id": 31536, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27394, - "src": "189:7:21", + "scope": 31539, + "src": "189:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1594,10 +1594,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27390, + "id": 31535, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "189:7:21", + "src": "189:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1606,43 +1606,43 @@ "visibility": "internal" } ], - "src": "188:9:21" + "src": "188:9:30" }, "returnParameters": { - "id": 27393, + "id": 31538, "nodeType": "ParameterList", "parameters": [], - "src": "206:0:21" + "src": "206:0:30" }, - "scope": 27404, + "scope": 31549, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 27403, + "id": 31548, "nodeType": "FunctionDefinition", - "src": "213:49:21", + "src": "213:49:30", "nodes": [], "functionSelector": "70ca10bb", "implemented": false, "kind": "function", "modifiers": [], "name": "store", - "nameLocation": "222:5:21", + "nameLocation": "222:5:30", "parameters": { - "id": 27401, + "id": 31546, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27396, + "id": 31541, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27403, - "src": "228:7:21", + "scope": 31548, + "src": "228:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1650,10 +1650,10 @@ "typeString": "address" }, "typeName": { - "id": 27395, + "id": 31540, "name": "address", "nodeType": "ElementaryTypeName", - "src": "228:7:21", + "src": "228:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1664,13 +1664,13 @@ }, { "constant": false, - "id": 27398, + "id": 31543, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27403, - "src": "236:7:21", + "scope": 31548, + "src": "236:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1678,10 +1678,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 27397, + "id": 31542, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "236:7:21", + "src": "236:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1691,13 +1691,13 @@ }, { "constant": false, - "id": 27400, + "id": 31545, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27403, - "src": "244:7:21", + "scope": 31548, + "src": "244:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1705,10 +1705,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 27399, + "id": 31544, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "244:7:21", + "src": "244:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1717,15 +1717,15 @@ "visibility": "internal" } ], - "src": "227:25:21" + "src": "227:25:30" }, "returnParameters": { - "id": 27402, + "id": 31547, "nodeType": "ParameterList", "parameters": [], - "src": "261:0:21" + "src": "261:0:30" }, - "scope": 27404, + "scope": 31549, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -1738,42 +1738,42 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 27404 + 31549 ], "name": "Hevm", - "nameLocation": "163:4:21", - "scope": 27933, + "nameLocation": "163:4:30", + "scope": 32081, "usedErrors": [] }, { - "id": 27412, + "id": 31557, "nodeType": "ContractDefinition", - "src": "269:69:21", + "src": "269:69:30", "nodes": [ { - "id": 27411, + "id": 31556, "nodeType": "FunctionDefinition", - "src": "291:44:21", + "src": "291:44:30", "nodes": [], "functionSelector": "095ea7b3", "implemented": false, "kind": "function", "modifiers": [], "name": "approve", - "nameLocation": "300:7:21", + "nameLocation": "300:7:30", "parameters": { - "id": 27409, + "id": 31554, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27406, + "id": 31551, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27411, - "src": "308:7:21", + "scope": 31556, + "src": "308:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1781,10 +1781,10 @@ "typeString": "address" }, "typeName": { - "id": 27405, + "id": 31550, "name": "address", "nodeType": "ElementaryTypeName", - "src": "308:7:21", + "src": "308:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1795,13 +1795,13 @@ }, { "constant": false, - "id": 27408, + "id": 31553, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27411, - "src": "317:7:21", + "scope": 31556, + "src": "317:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1809,10 +1809,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27407, + "id": 31552, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "317:7:21", + "src": "317:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1821,15 +1821,15 @@ "visibility": "internal" } ], - "src": "307:18:21" + "src": "307:18:30" }, "returnParameters": { - "id": 27410, + "id": 31555, "nodeType": "ParameterList", "parameters": [], - "src": "334:0:21" + "src": "334:0:30" }, - "scope": 27412, + "scope": 31557, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -1842,180 +1842,180 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 27412 + 31557 ], "name": "User", - "nameLocation": "279:4:21", - "scope": 27933, + "nameLocation": "279:4:30", + "scope": 32081, "usedErrors": [] }, { - "id": 27932, + "id": 32080, "nodeType": "ContractDefinition", - "src": "449:5807:21", + "src": "449:5881:30", "nodes": [ { - "id": 27417, + "id": 31562, "nodeType": "VariableDeclaration", - "src": "485:9:21", + "src": "485:9:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "hevm", - "nameLocation": "490:4:21", - "scope": 27932, + "nameLocation": "490:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" }, "typeName": { - "id": 27416, + "id": 31561, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27415, + "id": 31560, "name": "Hevm", "nameLocations": [ - "485:4:21" + "485:4:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27404, - "src": "485:4:21" + "referencedDeclaration": 31549, + "src": "485:4:30" }, - "referencedDeclaration": 27404, - "src": "485:4:21", + "referencedDeclaration": 31549, + "src": "485:4:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, "visibility": "internal" }, { - "id": 27420, + "id": 31565, "nodeType": "VariableDeclaration", - "src": "596:10:21", + "src": "596:10:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "joe", - "nameLocation": "603:3:21", - "scope": 27932, + "nameLocation": "603:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" }, "typeName": { - "id": 27419, + "id": 31564, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27418, + "id": 31563, "name": "Actor", "nameLocations": [ - "596:5:21" + "596:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "596:5:21" + "referencedDeclaration": 30379, + "src": "596:5:30" }, - "referencedDeclaration": 27385, - "src": "596:5:21", + "referencedDeclaration": 30379, + "src": "596:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, "visibility": "internal" }, { - "id": 27423, + "id": 31568, "nodeType": "VariableDeclaration", - "src": "625:10:21", + "src": "625:10:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "dev", - "nameLocation": "632:3:21", - "scope": 27932, + "nameLocation": "632:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" }, "typeName": { - "id": 27422, + "id": 31567, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27421, + "id": 31566, "name": "Actor", "nameLocations": [ - "625:5:21" + "625:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "625:5:21" + "referencedDeclaration": 30379, + "src": "625:5:30" }, - "referencedDeclaration": 27385, - "src": "625:5:21", + "referencedDeclaration": 30379, + "src": "625:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, "visibility": "internal" }, { - "id": 27426, + "id": 31571, "nodeType": "VariableDeclaration", - "src": "651:10:21", + "src": "651:10:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "jon", - "nameLocation": "658:3:21", - "scope": 27932, + "nameLocation": "658:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" }, "typeName": { - "id": 27425, + "id": 31570, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27424, + "id": 31569, "name": "Actor", "nameLocations": [ - "651:5:21" + "651:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "651:5:21" + "referencedDeclaration": 30379, + "src": "651:5:30" }, - "referencedDeclaration": 27385, - "src": "651:5:21", + "referencedDeclaration": 30379, + "src": "651:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, "visibility": "internal" }, { - "id": 27429, + "id": 31574, "nodeType": "VariableDeclaration", - "src": "815:67:21", + "src": "815:67:30", "nodes": [], "constant": true, "mutability": "constant", "name": "USDC", - "nameLocation": "832:4:21", - "scope": 27932, + "nameLocation": "832:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2023,10 +2023,10 @@ "typeString": "address" }, "typeName": { - "id": 27427, + "id": 31572, "name": "address", "nodeType": "ElementaryTypeName", - "src": "815:7:21", + "src": "815:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2035,14 +2035,14 @@ }, "value": { "hexValue": "307841306238363939316336323138623336633164313944346132653945623063453336303665423438", - "id": 27428, + "id": 31573, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "840:42:21", + "src": "840:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2052,15 +2052,15 @@ "visibility": "internal" }, { - "id": 27432, + "id": 31577, "nodeType": "VariableDeclaration", - "src": "889:67:21", + "src": "889:67:30", "nodes": [], "constant": true, "mutability": "constant", "name": "DAI", - "nameLocation": "906:3:21", - "scope": 27932, + "nameLocation": "906:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2068,10 +2068,10 @@ "typeString": "address" }, "typeName": { - "id": 27430, + "id": 31575, "name": "address", "nodeType": "ElementaryTypeName", - "src": "889:7:21", + "src": "889:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2080,14 +2080,14 @@ }, "value": { "hexValue": "307836423137353437344538393039344334344461393862393534456564654143343935323731643046", - "id": 27431, + "id": 31576, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "914:42:21", + "src": "914:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2097,15 +2097,15 @@ "visibility": "internal" }, { - "id": 27435, + "id": 31580, "nodeType": "VariableDeclaration", - "src": "963:67:21", + "src": "963:67:30", "nodes": [], "constant": true, "mutability": "constant", "name": "WETH", - "nameLocation": "980:4:21", - "scope": 27932, + "nameLocation": "980:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2113,10 +2113,10 @@ "typeString": "address" }, "typeName": { - "id": 27433, + "id": 31578, "name": "address", "nodeType": "ElementaryTypeName", - "src": "963:7:21", + "src": "963:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2125,14 +2125,14 @@ }, "value": { "hexValue": "307843303261614133396232323346453844304130653543344632376541443930383343373536436332", - "id": 27434, + "id": 31579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "988:42:21", + "src": "988:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2142,15 +2142,15 @@ "visibility": "internal" }, { - "id": 27438, + "id": 31583, "nodeType": "VariableDeclaration", - "src": "1037:67:21", + "src": "1037:67:30", "nodes": [], "constant": true, "mutability": "constant", "name": "WBTC", - "nameLocation": "1054:4:21", - "scope": 27932, + "nameLocation": "1054:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2158,10 +2158,10 @@ "typeString": "address" }, "typeName": { - "id": 27436, + "id": 31581, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1037:7:21", + "src": "1037:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2170,14 +2170,14 @@ }, "value": { "hexValue": "307832323630464143354535353432613737334161343466424366654466374331393362633243353939", - "id": 27437, + "id": 31582, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1062:42:21", + "src": "1062:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2187,50 +2187,95 @@ "visibility": "internal" }, { - "id": 27444, + "id": 31586, "nodeType": "VariableDeclaration", - "src": "1113:35:21", + "src": "1111:67:30", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "FRAX", + "nameLocation": "1128:4:30", + "scope": 32080, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 31584, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1111:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "hexValue": "307838353364393535614345663832324462303538656238353035393131454437374631373562393965", + "id": 31585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1136:42:30", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0x853d955aCEf822Db058eb8505911ED77F175b99e" + }, + "visibility": "internal" + }, + { + "id": 31592, + "nodeType": "VariableDeclaration", + "src": "1187:35:30", "nodes": [], "constant": true, "mutability": "constant", "name": "usdc", - "nameLocation": "1129:4:21", - "scope": 27932, + "nameLocation": "1203:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" }, "typeName": { - "id": 27440, + "id": 31588, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27439, + "id": 31587, "name": "IERC20", "nameLocations": [ - "1113:6:21" + "1187:6:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26425, - "src": "1113:6:21" + "referencedDeclaration": 29158, + "src": "1187:6:30" }, - "referencedDeclaration": 26425, - "src": "1113:6:21", + "referencedDeclaration": 29158, + "src": "1187:6:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "value": { "arguments": [ { - "id": 27442, + "id": 31590, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27429, - "src": "1143:4:21", + "referencedDeclaration": 31574, + "src": "1217:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2244,18 +2289,18 @@ "typeString": "address" } ], - "id": 27441, + "id": 31589, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "1136:6:21", + "referencedDeclaration": 29158, + "src": "1210:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27443, + "id": 31591, "isConstant": false, "isLValue": false, "isPure": true, @@ -2264,60 +2309,60 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1136:12:21", + "src": "1210:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "visibility": "internal" }, { - "id": 27450, + "id": 31598, "nodeType": "VariableDeclaration", - "src": "1155:34:21", + "src": "1229:34:30", "nodes": [], "constant": true, "mutability": "constant", "name": "dai", - "nameLocation": "1171:3:21", - "scope": 27932, + "nameLocation": "1245:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" }, "typeName": { - "id": 27446, + "id": 31594, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27445, + "id": 31593, "name": "IERC20", "nameLocations": [ - "1155:6:21" + "1229:6:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26425, - "src": "1155:6:21" + "referencedDeclaration": 29158, + "src": "1229:6:30" }, - "referencedDeclaration": 26425, - "src": "1155:6:21", + "referencedDeclaration": 29158, + "src": "1229:6:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "value": { "arguments": [ { - "id": 27448, + "id": 31596, "name": "DAI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27432, - "src": "1185:3:21", + "referencedDeclaration": 31577, + "src": "1259:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2331,18 +2376,18 @@ "typeString": "address" } ], - "id": 27447, + "id": 31595, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "1178:6:21", + "referencedDeclaration": 29158, + "src": "1252:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27449, + "id": 31597, "isConstant": false, "isLValue": false, "isPure": true, @@ -2351,60 +2396,60 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1178:11:21", + "src": "1252:11:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "visibility": "internal" }, { - "id": 27456, + "id": 31604, "nodeType": "VariableDeclaration", - "src": "1196:35:21", + "src": "1270:35:30", "nodes": [], "constant": true, "mutability": "constant", "name": "weth", - "nameLocation": "1212:4:21", - "scope": 27932, + "nameLocation": "1286:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" }, "typeName": { - "id": 27452, + "id": 31600, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27451, + "id": 31599, "name": "IERC20", "nameLocations": [ - "1196:6:21" + "1270:6:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26425, - "src": "1196:6:21" + "referencedDeclaration": 29158, + "src": "1270:6:30" }, - "referencedDeclaration": 26425, - "src": "1196:6:21", + "referencedDeclaration": 29158, + "src": "1270:6:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "value": { "arguments": [ { - "id": 27454, + "id": 31602, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27435, - "src": "1226:4:21", + "referencedDeclaration": 31580, + "src": "1300:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2418,18 +2463,18 @@ "typeString": "address" } ], - "id": 27453, + "id": 31601, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "1219:6:21", + "referencedDeclaration": 29158, + "src": "1293:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27455, + "id": 31603, "isConstant": false, "isLValue": false, "isPure": true, @@ -2438,60 +2483,60 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1219:12:21", + "src": "1293:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "visibility": "internal" }, { - "id": 27462, + "id": 31610, "nodeType": "VariableDeclaration", - "src": "1238:35:21", + "src": "1312:35:30", "nodes": [], "constant": true, "mutability": "constant", "name": "wbtc", - "nameLocation": "1254:4:21", - "scope": 27932, + "nameLocation": "1328:4:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" }, "typeName": { - "id": 27458, + "id": 31606, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27457, + "id": 31605, "name": "IERC20", "nameLocations": [ - "1238:6:21" + "1312:6:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26425, - "src": "1238:6:21" + "referencedDeclaration": 29158, + "src": "1312:6:30" }, - "referencedDeclaration": 26425, - "src": "1238:6:21", + "referencedDeclaration": 29158, + "src": "1312:6:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "value": { "arguments": [ { - "id": 27460, + "id": 31608, "name": "WBTC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27438, - "src": "1268:4:21", + "referencedDeclaration": 31583, + "src": "1342:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2505,18 +2550,18 @@ "typeString": "address" } ], - "id": 27459, + "id": 31607, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "1261:6:21", + "referencedDeclaration": 29158, + "src": "1335:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27461, + "id": 31609, "isConstant": false, "isLValue": false, "isPure": true, @@ -2525,25 +2570,25 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1261:12:21", + "src": "1335:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, "visibility": "internal" }, { - "id": 27465, + "id": 31613, "nodeType": "VariableDeclaration", - "src": "1282:82:21", + "src": "1356:82:30", "nodes": [], "constant": true, "mutability": "constant", "name": "UNISWAP_V2_ROUTER_02", - "nameLocation": "1299:20:21", - "scope": 27932, + "nameLocation": "1373:20:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2551,10 +2596,10 @@ "typeString": "address" }, "typeName": { - "id": 27463, + "id": 31611, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1282:7:21", + "src": "1356:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2563,14 +2608,14 @@ }, "value": { "hexValue": "307837613235306435363330423463463533393733396446324335644163623463363539463234383844", - "id": 27464, + "id": 31612, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1322:42:21", + "src": "1396:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2580,15 +2625,15 @@ "visibility": "internal" }, { - "id": 27468, + "id": 31616, "nodeType": "VariableDeclaration", - "src": "1392:82:21", + "src": "1466:82:30", "nodes": [], "constant": true, "mutability": "constant", "name": "UNISWAP_V2_FACTORY", - "nameLocation": "1409:18:21", - "scope": 27932, + "nameLocation": "1483:18:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2596,10 +2641,10 @@ "typeString": "address" }, "typeName": { - "id": 27466, + "id": 31614, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1392:7:21", + "src": "1466:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2608,14 +2653,14 @@ }, "value": { "hexValue": "307835433639624565373031656638313461324236613345444434423136353243423963633561413666", - "id": 27467, + "id": 31615, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1432:42:21", + "src": "1506:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2625,16 +2670,16 @@ "visibility": "internal" }, { - "id": 27471, + "id": 31619, "nodeType": "VariableDeclaration", - "src": "1581:36:21", + "src": "1655:36:30", "nodes": [], "constant": true, "functionSelector": "e70dd6cf", "mutability": "constant", "name": "CL_FACTORY", - "nameLocation": "1603:10:21", - "scope": 27932, + "nameLocation": "1677:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2642,10 +2687,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27469, + "id": 31617, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1581:5:21", + "src": "1655:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2653,14 +2698,14 @@ }, "value": { "hexValue": "30", - "id": 27470, + "id": 31618, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1616:1:21", + "src": "1690:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2670,16 +2715,16 @@ "visibility": "public" }, { - "id": 27474, + "id": 31622, "nodeType": "VariableDeclaration", - "src": "1671:36:21", + "src": "1745:36:30", "nodes": [], "constant": true, "functionSelector": "174a5be4", "mutability": "constant", "name": "DL_FACTORY", - "nameLocation": "1693:10:21", - "scope": 27932, + "nameLocation": "1767:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2687,10 +2732,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27472, + "id": 31620, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1671:5:21", + "src": "1745:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2698,14 +2743,14 @@ }, "value": { "hexValue": "31", - "id": 27473, + "id": 31621, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1706:1:21", + "src": "1780:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -2715,16 +2760,16 @@ "visibility": "public" }, { - "id": 27477, + "id": 31625, "nodeType": "VariableDeclaration", - "src": "1755:36:21", + "src": "1829:36:30", "nodes": [], "constant": true, "functionSelector": "38505fb0", "mutability": "constant", "name": "FL_FACTORY", - "nameLocation": "1777:10:21", - "scope": 27932, + "nameLocation": "1851:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2732,10 +2777,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27475, + "id": 31623, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1755:5:21", + "src": "1829:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2743,14 +2788,14 @@ }, "value": { "hexValue": "32", - "id": 27476, + "id": 31624, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1790:1:21", + "src": "1864:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -2760,16 +2805,16 @@ "visibility": "public" }, { - "id": 27480, + "id": 31628, "nodeType": "VariableDeclaration", - "src": "1842:36:21", + "src": "1916:36:30", "nodes": [], "constant": true, "functionSelector": "c5ba73ed", "mutability": "constant", "name": "LL_FACTORY", - "nameLocation": "1864:10:21", - "scope": 27932, + "nameLocation": "1938:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2777,10 +2822,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27478, + "id": 31626, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1842:5:21", + "src": "1916:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2788,14 +2833,14 @@ }, "value": { "hexValue": "33", - "id": 27479, + "id": 31627, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1877:1:21", + "src": "1951:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" @@ -2805,16 +2850,16 @@ "visibility": "public" }, { - "id": 27483, + "id": 31631, "nodeType": "VariableDeclaration", - "src": "1931:36:21", + "src": "2005:36:30", "nodes": [], "constant": true, "functionSelector": "9f71f14a", "mutability": "constant", "name": "SL_FACTORY", - "nameLocation": "1953:10:21", - "scope": 27932, + "nameLocation": "2027:10:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2822,10 +2867,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27481, + "id": 31629, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1931:5:21", + "src": "2005:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2833,14 +2878,14 @@ }, "value": { "hexValue": "34", - "id": 27482, + "id": 31630, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1966:1:21", + "src": "2040:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" @@ -2850,16 +2895,16 @@ "visibility": "public" }, { - "id": 27486, + "id": 31634, "nodeType": "VariableDeclaration", - "src": "2018:45:21", + "src": "2092:45:30", "nodes": [], "constant": true, "functionSelector": "8c38922f", "mutability": "constant", "name": "INTEREST_CALC_TYPE", - "nameLocation": "2040:18:21", - "scope": 27932, + "nameLocation": "2114:18:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2867,10 +2912,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27484, + "id": 31632, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2018:5:21", + "src": "2092:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2878,14 +2923,14 @@ }, "value": { "hexValue": "3130", - "id": 27485, + "id": 31633, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2061:2:21", + "src": "2135:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -2895,16 +2940,16 @@ "visibility": "public" }, { - "id": 27489, + "id": 31637, "nodeType": "VariableDeclaration", - "src": "2104:45:21", + "src": "2178:45:30", "nodes": [], "constant": true, "functionSelector": "3493f4ca", "mutability": "constant", "name": "LATEFEE_CALC_TYPE", - "nameLocation": "2126:17:21", - "scope": 27932, + "nameLocation": "2200:17:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2912,10 +2957,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27487, + "id": 31635, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2104:5:21", + "src": "2178:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2923,14 +2968,14 @@ }, "value": { "hexValue": "3131", - "id": 27488, + "id": 31636, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2147:2:21", + "src": "2221:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_11_by_1", "typeString": "int_const 11" @@ -2940,16 +2985,16 @@ "visibility": "public" }, { - "id": 27492, + "id": 31640, "nodeType": "VariableDeclaration", - "src": "2188:45:21", + "src": "2262:45:30", "nodes": [], "constant": true, "functionSelector": "7a8fe3c0", "mutability": "constant", "name": "PREMIUM_CALC_TYPE", - "nameLocation": "2210:17:21", - "scope": 27932, + "nameLocation": "2284:17:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2957,10 +3002,10 @@ "typeString": "uint8" }, "typeName": { - "id": 27490, + "id": 31638, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2188:5:21", + "src": "2262:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2968,14 +3013,14 @@ }, "value": { "hexValue": "3132", - "id": 27491, + "id": 31639, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2231:2:21", + "src": "2305:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", "typeString": "int_const 12" @@ -2985,15 +3030,15 @@ "visibility": "public" }, { - "id": 27497, + "id": 31645, "nodeType": "VariableDeclaration", - "src": "2274:30:21", + "src": "2348:30:30", "nodes": [], "constant": true, "mutability": "constant", "name": "USD", - "nameLocation": "2291:3:21", - "scope": 27932, + "nameLocation": "2365:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3001,10 +3046,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27493, + "id": 31641, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2274:7:21", + "src": "2348:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3015,21 +3060,21 @@ "typeIdentifier": "t_rational_1000000_by_1", "typeString": "int_const 1000000" }, - "id": 27496, + "id": 31644, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27494, + "id": 31642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2297:2:21", + "src": "2371:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -3040,21 +3085,21 @@ "operator": "**", "rightExpression": { "hexValue": "36", - "id": 27495, + "id": 31643, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2303:1:21", + "src": "2377:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", "typeString": "int_const 6" }, "value": "6" }, - "src": "2297:7:21", + "src": "2371:7:30", "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", "typeString": "int_const 1000000" @@ -3063,15 +3108,15 @@ "visibility": "internal" }, { - "id": 27502, + "id": 31650, "nodeType": "VariableDeclaration", - "src": "2339:30:21", + "src": "2413:30:30", "nodes": [], "constant": true, "mutability": "constant", "name": "BTC", - "nameLocation": "2356:3:21", - "scope": 27932, + "nameLocation": "2430:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3079,10 +3124,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27498, + "id": 31646, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2339:7:21", + "src": "2413:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3093,21 +3138,21 @@ "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" }, - "id": 27501, + "id": 31649, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27499, + "id": 31647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2362:2:21", + "src": "2436:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -3118,21 +3163,21 @@ "operator": "**", "rightExpression": { "hexValue": "38", - "id": 27500, + "id": 31648, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2368:1:21", + "src": "2442:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "2362:7:21", + "src": "2436:7:30", "typeDescriptions": { "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" @@ -3141,15 +3186,15 @@ "visibility": "internal" }, { - "id": 27507, + "id": 31655, "nodeType": "VariableDeclaration", - "src": "2404:31:21", + "src": "2478:31:30", "nodes": [], "constant": true, "mutability": "constant", "name": "WAD", - "nameLocation": "2421:3:21", - "scope": 27932, + "nameLocation": "2495:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3157,10 +3202,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27503, + "id": 31651, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2404:7:21", + "src": "2478:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3171,21 +3216,21 @@ "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" }, - "id": 27506, + "id": 31654, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27504, + "id": 31652, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2427:2:21", + "src": "2501:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -3196,21 +3241,21 @@ "operator": "**", "rightExpression": { "hexValue": "3138", - "id": 27505, + "id": 31653, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2433:2:21", + "src": "2507:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, - "src": "2427:8:21", + "src": "2501:8:30", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" @@ -3219,15 +3264,15 @@ "visibility": "internal" }, { - "id": 27512, + "id": 31660, "nodeType": "VariableDeclaration", - "src": "2442:31:21", + "src": "2516:31:30", "nodes": [], "constant": true, "mutability": "constant", "name": "RAY", - "nameLocation": "2459:3:21", - "scope": 27932, + "nameLocation": "2533:3:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3235,10 +3280,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27508, + "id": 31656, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2442:7:21", + "src": "2516:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3249,21 +3294,21 @@ "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" }, - "id": 27511, + "id": 31659, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27509, + "id": 31657, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2465:2:21", + "src": "2539:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -3274,21 +3319,21 @@ "operator": "**", "rightExpression": { "hexValue": "3237", - "id": 27510, + "id": 31658, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2471:2:21", + "src": "2545:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", "typeString": "int_const 27" }, "value": "27" }, - "src": "2465:8:21", + "src": "2539:8:30", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000000" @@ -3297,21 +3342,21 @@ "visibility": "internal" }, { - "id": 27519, + "id": 31667, "nodeType": "StructDefinition", - "src": "2557:167:21", + "src": "2631:167:30", "nodes": [], "canonicalName": "Utility.Token", "members": [ { "constant": false, - "id": 27514, + "id": 31662, "mutability": "mutable", "name": "addr", - "nameLocation": "2589:4:21", + "nameLocation": "2663:4:30", "nodeType": "VariableDeclaration", - "scope": 27519, - "src": "2581:12:21", + "scope": 31667, + "src": "2655:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3319,10 +3364,10 @@ "typeString": "address" }, "typeName": { - "id": 27513, + "id": 31661, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2581:7:21", + "src": "2655:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3333,13 +3378,13 @@ }, { "constant": false, - "id": 27516, + "id": 31664, "mutability": "mutable", "name": "slot", - "nameLocation": "2637:4:21", + "nameLocation": "2711:4:30", "nodeType": "VariableDeclaration", - "scope": 27519, - "src": "2629:12:21", + "scope": 31667, + "src": "2703:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3347,10 +3392,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27515, + "id": 31663, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2629:7:21", + "src": "2703:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3360,13 +3405,13 @@ }, { "constant": false, - "id": 27518, + "id": 31666, "mutability": "mutable", "name": "orcl", - "nameLocation": "2684:4:21", + "nameLocation": "2758:4:30", "nodeType": "VariableDeclaration", - "scope": 27519, - "src": "2676:12:21", + "scope": 31667, + "src": "2750:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3374,10 +3419,10 @@ "typeString": "address" }, "typeName": { - "id": 27517, + "id": 31665, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2676:7:21", + "src": "2750:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3388,61 +3433,61 @@ } ], "name": "Token", - "nameLocation": "2564:5:21", - "scope": 27932, + "nameLocation": "2638:5:30", + "scope": 32080, "visibility": "public" }, { - "id": 27524, + "id": 31672, "nodeType": "VariableDeclaration", - "src": "2733:33:21", + "src": "2807:33:30", "nodes": [], "constant": false, "mutability": "mutable", "name": "tokens", - "nameLocation": "2760:6:21", - "scope": 27932, + "nameLocation": "2834:6:30", + "scope": 32080, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token)" }, "typeName": { - "id": 27523, + "id": 31671, "keyType": { - "id": 27520, + "id": 31668, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2742:7:21", + "src": "2816:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "2733:26:21", + "src": "2807:26:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token)" }, "valueType": { - "id": 27522, + "id": 31670, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27521, + "id": 31669, "name": "Token", "nameLocations": [ - "2753:5:21" + "2827:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27519, - "src": "2753:5:21" + "referencedDeclaration": 31667, + "src": "2827:5:30" }, - "referencedDeclaration": 27519, - "src": "2753:5:21", + "referencedDeclaration": 31667, + "src": "2827:5:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage_ptr", + "typeIdentifier": "t_struct$_Token_$31667_storage_ptr", "typeString": "struct Utility.Token" } } @@ -3450,21 +3495,21 @@ "visibility": "internal" }, { - "id": 27529, + "id": 31677, "nodeType": "StructDefinition", - "src": "2775:68:21", + "src": "2849:68:30", "nodes": [], "canonicalName": "Utility.TestObj", "members": [ { "constant": false, - "id": 27526, + "id": 31674, "mutability": "mutable", "name": "pre", - "nameLocation": "2809:3:21", + "nameLocation": "2883:3:30", "nodeType": "VariableDeclaration", - "scope": 27529, - "src": "2801:11:21", + "scope": 31677, + "src": "2875:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3472,10 +3517,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27525, + "id": 31673, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2801:7:21", + "src": "2875:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3485,13 +3530,13 @@ }, { "constant": false, - "id": 27528, + "id": 31676, "mutability": "mutable", "name": "post", - "nameLocation": "2831:4:21", + "nameLocation": "2905:4:30", "nodeType": "VariableDeclaration", - "scope": 27529, - "src": "2823:12:21", + "scope": 31677, + "src": "2897:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3499,10 +3544,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27527, + "id": 31675, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2823:7:21", + "src": "2897:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3512,33 +3557,33 @@ } ], "name": "TestObj", - "nameLocation": "2782:7:21", - "scope": 27932, + "nameLocation": "2856:7:30", + "scope": 32080, "visibility": "public" }, { - "id": 27535, + "id": 31683, "nodeType": "EventDefinition", - "src": "2851:29:21", + "src": "2925:29:30", "nodes": [], "anonymous": false, "eventSelector": "3c5ad147104e56be34a9176a6692f7df8d2f4b29a5af06bc6b98970d329d6577", "name": "Debug", - "nameLocation": "2857:5:21", + "nameLocation": "2931:5:30", "parameters": { - "id": 27534, + "id": 31682, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27531, + "id": 31679, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27535, - "src": "2863:6:21", + "scope": 31683, + "src": "2937:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3546,10 +3591,10 @@ "typeString": "string" }, "typeName": { - "id": 27530, + "id": 31678, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2863:6:21", + "src": "2937:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3559,14 +3604,14 @@ }, { "constant": false, - "id": 27533, + "id": 31681, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27535, - "src": "2871:7:21", + "scope": 31683, + "src": "2945:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3574,10 +3619,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27532, + "id": 31680, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2871:7:21", + "src": "2945:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3586,32 +3631,32 @@ "visibility": "internal" } ], - "src": "2862:17:21" + "src": "2936:17:30" } }, { - "id": 27541, + "id": 31689, "nodeType": "EventDefinition", - "src": "2886:29:21", + "src": "2960:29:30", "nodes": [], "anonymous": false, "eventSelector": "14186b8ac9c91f14b0f16f9e886356157442bb899be26513dfe1d4d5929a5bac", "name": "Debug", - "nameLocation": "2892:5:21", + "nameLocation": "2966:5:30", "parameters": { - "id": 27540, + "id": 31688, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27537, + "id": 31685, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27541, - "src": "2898:6:21", + "scope": 31689, + "src": "2972:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3619,10 +3664,10 @@ "typeString": "string" }, "typeName": { - "id": 27536, + "id": 31684, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2898:6:21", + "src": "2972:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3632,14 +3677,14 @@ }, { "constant": false, - "id": 27539, + "id": 31687, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27541, - "src": "2906:7:21", + "scope": 31689, + "src": "2980:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3647,10 +3692,10 @@ "typeString": "address" }, "typeName": { - "id": 27538, + "id": 31686, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2906:7:21", + "src": "2980:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3660,32 +3705,32 @@ "visibility": "internal" } ], - "src": "2897:17:21" + "src": "2971:17:30" } }, { - "id": 27547, + "id": 31695, "nodeType": "EventDefinition", - "src": "2921:26:21", + "src": "2995:26:30", "nodes": [], "anonymous": false, "eventSelector": "d1401e4d321999a7547f3d989953912043b0f4ab8471cc7307695072f6ee9d83", "name": "Debug", - "nameLocation": "2927:5:21", + "nameLocation": "3001:5:30", "parameters": { - "id": 27546, + "id": 31694, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27543, + "id": 31691, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27547, - "src": "2933:6:21", + "scope": 31695, + "src": "3007:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3693,10 +3738,10 @@ "typeString": "string" }, "typeName": { - "id": 27542, + "id": 31690, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2933:6:21", + "src": "3007:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3706,14 +3751,14 @@ }, { "constant": false, - "id": 27545, + "id": 31693, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27547, - "src": "2941:4:21", + "scope": 31695, + "src": "3015:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3721,10 +3766,10 @@ "typeString": "bool" }, "typeName": { - "id": 27544, + "id": 31692, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2941:4:21", + "src": "3015:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3733,32 +3778,32 @@ "visibility": "internal" } ], - "src": "2932:14:21" + "src": "3006:14:30" } }, { - "id": 27553, + "id": 31701, "nodeType": "EventDefinition", - "src": "2953:28:21", + "src": "3027:28:30", "nodes": [], "anonymous": false, "eventSelector": "747eaa98d4c6787fb9ebfa7ba00179a57433dbd57fd28208b7a240d949164a09", "name": "Debug", - "nameLocation": "2959:5:21", + "nameLocation": "3033:5:30", "parameters": { - "id": 27552, + "id": 31700, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27549, + "id": 31697, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27553, - "src": "2965:6:21", + "scope": 31701, + "src": "3039:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3766,10 +3811,10 @@ "typeString": "string" }, "typeName": { - "id": 27548, + "id": 31696, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2965:6:21", + "src": "3039:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3779,14 +3824,14 @@ }, { "constant": false, - "id": 27551, + "id": 31699, "indexed": false, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27553, - "src": "2973:6:21", + "scope": 31701, + "src": "3047:6:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3794,10 +3839,10 @@ "typeString": "string" }, "typeName": { - "id": 27550, + "id": 31698, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2973:6:21", + "src": "3047:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3806,36 +3851,36 @@ "visibility": "internal" } ], - "src": "2964:16:21" + "src": "3038:16:30" } }, { - "id": 27577, + "id": 31725, "nodeType": "FunctionDefinition", - "src": "2989:103:21", + "src": "3063:103:30", "nodes": [], "body": { - "id": 27576, + "id": 31724, "nodeType": "Block", - "src": "3010:82:21", + "src": "3084:82:30", "nodes": [], "statements": [ { "expression": { - "id": 27574, + "id": 31722, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 27556, + "id": 31704, "name": "hevm", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27417, - "src": "3012:4:21", + "referencedDeclaration": 31562, + "src": "3086:4:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, @@ -3855,14 +3900,14 @@ "arguments": [ { "hexValue": "6865766d20636865617420636f6465", - "id": 27567, + "id": 31715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3066:17:21", + "src": "3140:17:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d", "typeString": "literal_string \"hevm cheat code\"" @@ -3877,18 +3922,18 @@ "typeString": "literal_string \"hevm cheat code\"" } ], - "id": 27566, + "id": 31714, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "3056:9:21", + "src": "3130:9:30", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 27568, + "id": 31716, "isConstant": false, "isLValue": false, "isPure": true, @@ -3897,7 +3942,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3056:28:21", + "src": "3130:28:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3912,26 +3957,26 @@ "typeString": "bytes32" } ], - "id": 27565, + "id": 31713, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3048:7:21", + "src": "3122:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 27564, + "id": 31712, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3048:7:21", + "src": "3122:7:30", "typeDescriptions": {} } }, - "id": 27569, + "id": 31717, "isConstant": false, "isLValue": false, "isPure": true, @@ -3940,7 +3985,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3048:37:21", + "src": "3122:37:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3955,26 +4000,26 @@ "typeString": "uint256" } ], - "id": 27563, + "id": 31711, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3040:7:21", + "src": "3114:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint160_$", "typeString": "type(uint160)" }, "typeName": { - "id": 27562, + "id": 31710, "name": "uint160", "nodeType": "ElementaryTypeName", - "src": "3040:7:21", + "src": "3114:7:30", "typeDescriptions": {} } }, - "id": 27570, + "id": 31718, "isConstant": false, "isLValue": false, "isPure": true, @@ -3983,7 +4028,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3040:46:21", + "src": "3114:46:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint160", @@ -3998,26 +4043,26 @@ "typeString": "uint160" } ], - "id": 27561, + "id": 31709, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3032:7:21", + "src": "3106:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 27560, + "id": 31708, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "3032:7:21", + "src": "3106:7:30", "typeDescriptions": {} } }, - "id": 27571, + "id": 31719, "isConstant": false, "isLValue": false, "isPure": true, @@ -4026,7 +4071,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3032:55:21", + "src": "3106:55:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -4041,26 +4086,26 @@ "typeString": "bytes20" } ], - "id": 27559, + "id": 31707, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3024:7:21", + "src": "3098:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27558, + "id": 31706, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3024:7:21", + "src": "3098:7:30", "typeDescriptions": {} } }, - "id": 27572, + "id": 31720, "isConstant": false, "isLValue": false, "isPure": true, @@ -4069,7 +4114,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3024:64:21", + "src": "3098:64:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -4084,18 +4129,18 @@ "typeString": "address" } ], - "id": 27557, + "id": 31705, "name": "Hevm", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27404, - "src": "3019:4:21", + "referencedDeclaration": 31549, + "src": "3093:4:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Hevm_$27404_$", + "typeIdentifier": "t_type$_t_contract$_Hevm_$31549_$", "typeString": "type(contract Hevm)" } }, - "id": 27573, + "id": 31721, "isConstant": false, "isLValue": false, "isPure": true, @@ -4104,22 +4149,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3019:70:21", + "src": "3093:70:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, - "src": "3012:77:21", + "src": "3086:77:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, - "id": 27575, + "id": 31723, "nodeType": "ExpressionStatement", - "src": "3012:77:21" + "src": "3086:77:30" } ] }, @@ -4129,49 +4174,49 @@ "name": "", "nameLocation": "-1:-1:-1", "parameters": { - "id": 27554, + "id": 31702, "nodeType": "ParameterList", "parameters": [], - "src": "3000:2:21" + "src": "3074:2:30" }, "returnParameters": { - "id": 27555, + "id": 31703, "nodeType": "ParameterList", "parameters": [], - "src": "3010:0:21" + "src": "3084:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27602, + "id": 31750, "nodeType": "FunctionDefinition", - "src": "3238:184:21", + "src": "3312:184:30", "nodes": [], "body": { - "id": 27601, + "id": 31749, "nodeType": "Block", - "src": "3269:153:21", + "src": "3343:153:30", "nodes": [], "statements": [ { "expression": { - "id": 27585, + "id": 31733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 27580, + "id": 31728, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27426, - "src": "3280:3:21", + "referencedDeclaration": 31571, + "src": "3354:3:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, @@ -4181,39 +4226,39 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 27583, + "id": 31731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3286:9:21", + "src": "3360:9:30", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$27385_$", + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$30379_$", "typeString": "function () returns (contract Actor)" }, "typeName": { - "id": 27582, + "id": 31730, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27581, + "id": 31729, "name": "Actor", "nameLocations": [ - "3290:5:21" + "3364:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "3290:5:21" + "referencedDeclaration": 30379, + "src": "3364:5:30" }, - "referencedDeclaration": 27385, - "src": "3290:5:21", + "referencedDeclaration": 30379, + "src": "3364:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } }, - "id": 27584, + "id": 31732, "isConstant": false, "isLValue": false, "isPure": false, @@ -4222,39 +4267,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3286:11:21", + "src": "3360:11:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "src": "3280:17:21", + "src": "3354:17:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 27586, + "id": 31734, "nodeType": "ExpressionStatement", - "src": "3280:17:21" + "src": "3354:17:30" }, { "expression": { - "id": 27592, + "id": 31740, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 27587, + "id": 31735, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27420, - "src": "3321:3:21", + "referencedDeclaration": 31565, + "src": "3395:3:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, @@ -4264,39 +4309,39 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 27590, + "id": 31738, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3327:9:21", + "src": "3401:9:30", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$27385_$", + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$30379_$", "typeString": "function () returns (contract Actor)" }, "typeName": { - "id": 27589, + "id": 31737, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27588, + "id": 31736, "name": "Actor", "nameLocations": [ - "3331:5:21" + "3405:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "3331:5:21" + "referencedDeclaration": 30379, + "src": "3405:5:30" }, - "referencedDeclaration": 27385, - "src": "3331:5:21", + "referencedDeclaration": 30379, + "src": "3405:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } }, - "id": 27591, + "id": 31739, "isConstant": false, "isLValue": false, "isPure": false, @@ -4305,39 +4350,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3327:11:21", + "src": "3401:11:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "src": "3321:17:21", + "src": "3395:17:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 27593, + "id": 31741, "nodeType": "ExpressionStatement", - "src": "3321:17:21" + "src": "3395:17:30" }, { "expression": { - "id": 27599, + "id": 31747, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 27594, + "id": 31742, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27423, - "src": "3388:3:21", + "referencedDeclaration": 31568, + "src": "3462:3:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, @@ -4347,39 +4392,39 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 27597, + "id": 31745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3394:9:21", + "src": "3468:9:30", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$27385_$", + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$30379_$", "typeString": "function () returns (contract Actor)" }, "typeName": { - "id": 27596, + "id": 31744, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27595, + "id": 31743, "name": "Actor", "nameLocations": [ - "3398:5:21" + "3472:5:30" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27385, - "src": "3398:5:21" + "referencedDeclaration": 30379, + "src": "3472:5:30" }, - "referencedDeclaration": 27385, - "src": "3398:5:21", + "referencedDeclaration": 30379, + "src": "3472:5:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } }, - "id": 27598, + "id": 31746, "isConstant": false, "isLValue": false, "isPure": false, @@ -4388,22 +4433,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3394:11:21", + "src": "3468:11:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "src": "3388:17:21", + "src": "3462:17:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27385", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 27600, + "id": 31748, "nodeType": "ExpressionStatement", - "src": "3388:17:21" + "src": "3462:17:30" } ] }, @@ -4412,38 +4457,38 @@ "kind": "function", "modifiers": [], "name": "createActors", - "nameLocation": "3247:12:21", + "nameLocation": "3321:12:30", "parameters": { - "id": 27578, + "id": 31726, "nodeType": "ParameterList", "parameters": [], - "src": "3259:2:21" + "src": "3333:2:30" }, "returnParameters": { - "id": 27579, + "id": 31727, "nodeType": "ParameterList", "parameters": [], - "src": "3269:0:21" + "src": "3343:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27683, + "id": 31831, "nodeType": "FunctionDefinition", - "src": "3546:551:21", + "src": "3620:551:30", "nodes": [], "body": { - "id": 27682, + "id": 31830, "nodeType": "Block", - "src": "3576:521:21", + "src": "3650:521:30", "nodes": [], "statements": [ { "expression": { - "id": 27610, + "id": 31758, "isConstant": false, "isLValue": false, "isPure": false, @@ -4451,28 +4496,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27605, + "id": 31753, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3589:6:21", + "referencedDeclaration": 31672, + "src": "3663:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27607, + "id": 31755, "indexExpression": { "hexValue": "55534443", - "id": 27606, + "id": 31754, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3596:6:21", + "src": "3670:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", "typeString": "literal_string \"USDC\"" @@ -4484,22 +4529,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3589:14:21", + "src": "3663:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27608, + "id": 31756, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3604:4:21", + "memberLocation": "3678:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "3589:19:21", + "referencedDeclaration": 31662, + "src": "3663:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4508,30 +4553,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 27609, + "id": 31757, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27429, - "src": "3611:4:21", + "referencedDeclaration": 31574, + "src": "3685:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3589:26:21", + "src": "3663:26:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27611, + "id": 31759, "nodeType": "ExpressionStatement", - "src": "3589:26:21" + "src": "3663:26:30" }, { "expression": { - "id": 27617, + "id": 31765, "isConstant": false, "isLValue": false, "isPure": false, @@ -4539,28 +4584,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27612, + "id": 31760, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3626:6:21", + "referencedDeclaration": 31672, + "src": "3700:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27614, + "id": 31762, "indexExpression": { "hexValue": "55534443", - "id": 27613, + "id": 31761, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3633:6:21", + "src": "3707:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", "typeString": "literal_string \"USDC\"" @@ -4572,22 +4617,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3626:14:21", + "src": "3700:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27615, + "id": 31763, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3641:4:21", + "memberLocation": "3715:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "3626:19:21", + "referencedDeclaration": 31664, + "src": "3700:19:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4597,33 +4642,33 @@ "operator": "=", "rightHandSide": { "hexValue": "39", - "id": 27616, + "id": 31764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3648:1:21", + "src": "3722:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_9_by_1", "typeString": "int_const 9" }, "value": "9" }, - "src": "3626:23:21", + "src": "3700:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27618, + "id": 31766, "nodeType": "ExpressionStatement", - "src": "3626:23:21" + "src": "3700:23:30" }, { "expression": { - "id": 27624, + "id": 31772, "isConstant": false, "isLValue": false, "isPure": false, @@ -4631,28 +4676,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27619, + "id": 31767, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3662:6:21", + "referencedDeclaration": 31672, + "src": "3736:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27621, + "id": 31769, "indexExpression": { "hexValue": "444149", - "id": 27620, + "id": 31768, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3669:5:21", + "src": "3743:5:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568", "typeString": "literal_string \"DAI\"" @@ -4664,22 +4709,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3662:13:21", + "src": "3736:13:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27622, + "id": 31770, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3676:4:21", + "memberLocation": "3750:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "3662:18:21", + "referencedDeclaration": 31662, + "src": "3736:18:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4688,30 +4733,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 27623, + "id": 31771, "name": "DAI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27432, - "src": "3683:3:21", + "referencedDeclaration": 31577, + "src": "3757:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3662:24:21", + "src": "3736:24:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27625, + "id": 31773, "nodeType": "ExpressionStatement", - "src": "3662:24:21" + "src": "3736:24:30" }, { "expression": { - "id": 27631, + "id": 31779, "isConstant": false, "isLValue": false, "isPure": false, @@ -4719,28 +4764,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27626, + "id": 31774, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3697:6:21", + "referencedDeclaration": 31672, + "src": "3771:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27628, + "id": 31776, "indexExpression": { "hexValue": "444149", - "id": 27627, + "id": 31775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3704:5:21", + "src": "3778:5:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568", "typeString": "literal_string \"DAI\"" @@ -4752,22 +4797,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3697:13:21", + "src": "3771:13:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27629, + "id": 31777, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3711:4:21", + "memberLocation": "3785:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "3697:18:21", + "referencedDeclaration": 31664, + "src": "3771:18:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4777,33 +4822,33 @@ "operator": "=", "rightHandSide": { "hexValue": "32", - "id": 27630, + "id": 31778, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3718:1:21", + "src": "3792:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "3697:22:21", + "src": "3771:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27632, + "id": 31780, "nodeType": "ExpressionStatement", - "src": "3697:22:21" + "src": "3771:22:30" }, { "expression": { - "id": 27638, + "id": 31786, "isConstant": false, "isLValue": false, "isPure": false, @@ -4811,28 +4856,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27633, + "id": 31781, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3730:6:21", + "referencedDeclaration": 31672, + "src": "3804:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27635, + "id": 31783, "indexExpression": { "hexValue": "444149", - "id": 27634, + "id": 31782, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3737:5:21", + "src": "3811:5:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568", "typeString": "literal_string \"DAI\"" @@ -4844,22 +4889,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3730:13:21", + "src": "3804:13:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27636, + "id": 31784, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3744:4:21", + "memberLocation": "3818:4:30", "memberName": "orcl", "nodeType": "MemberAccess", - "referencedDeclaration": 27518, - "src": "3730:18:21", + "referencedDeclaration": 31666, + "src": "3804:18:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4869,33 +4914,33 @@ "operator": "=", "rightHandSide": { "hexValue": "307841656430633338343032613564313964663645346330334634453244636544366532396331656539", - "id": 27637, + "id": 31785, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3751:42:21", + "src": "3825:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "value": "0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9" }, - "src": "3730:63:21", + "src": "3804:63:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27639, + "id": 31787, "nodeType": "ExpressionStatement", - "src": "3730:63:21" + "src": "3804:63:30" }, { "expression": { - "id": 27645, + "id": 31793, "isConstant": false, "isLValue": false, "isPure": false, @@ -4903,28 +4948,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27640, + "id": 31788, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3806:6:21", + "referencedDeclaration": 31672, + "src": "3880:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27642, + "id": 31790, "indexExpression": { "hexValue": "57455448", - "id": 27641, + "id": 31789, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3813:6:21", + "src": "3887:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8", "typeString": "literal_string \"WETH\"" @@ -4936,22 +4981,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3806:14:21", + "src": "3880:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27643, + "id": 31791, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3821:4:21", + "memberLocation": "3895:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "3806:19:21", + "referencedDeclaration": 31662, + "src": "3880:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4960,30 +5005,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 27644, + "id": 31792, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27435, - "src": "3828:4:21", + "referencedDeclaration": 31580, + "src": "3902:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3806:26:21", + "src": "3880:26:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27646, + "id": 31794, "nodeType": "ExpressionStatement", - "src": "3806:26:21" + "src": "3880:26:30" }, { "expression": { - "id": 27652, + "id": 31800, "isConstant": false, "isLValue": false, "isPure": false, @@ -4991,28 +5036,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27647, + "id": 31795, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3843:6:21", + "referencedDeclaration": 31672, + "src": "3917:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27649, + "id": 31797, "indexExpression": { "hexValue": "57455448", - "id": 27648, + "id": 31796, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3850:6:21", + "src": "3924:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8", "typeString": "literal_string \"WETH\"" @@ -5024,22 +5069,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3843:14:21", + "src": "3917:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27650, + "id": 31798, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3858:4:21", + "memberLocation": "3932:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "3843:19:21", + "referencedDeclaration": 31664, + "src": "3917:19:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5049,33 +5094,33 @@ "operator": "=", "rightHandSide": { "hexValue": "33", - "id": 27651, + "id": 31799, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3865:1:21", + "src": "3939:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, - "src": "3843:23:21", + "src": "3917:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27653, + "id": 31801, "nodeType": "ExpressionStatement", - "src": "3843:23:21" + "src": "3917:23:30" }, { "expression": { - "id": 27659, + "id": 31807, "isConstant": false, "isLValue": false, "isPure": false, @@ -5083,28 +5128,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27654, + "id": 31802, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3877:6:21", + "referencedDeclaration": 31672, + "src": "3951:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27656, + "id": 31804, "indexExpression": { "hexValue": "57455448", - "id": 27655, + "id": 31803, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3884:6:21", + "src": "3958:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8", "typeString": "literal_string \"WETH\"" @@ -5116,22 +5161,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3877:14:21", + "src": "3951:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27657, + "id": 31805, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3892:4:21", + "memberLocation": "3966:4:30", "memberName": "orcl", "nodeType": "MemberAccess", - "referencedDeclaration": 27518, - "src": "3877:19:21", + "referencedDeclaration": 31666, + "src": "3951:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5141,33 +5186,33 @@ "operator": "=", "rightHandSide": { "hexValue": "307835663465433344663963626434333731344645323734306635453336313631353563356238343139", - "id": 27658, + "id": 31806, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3899:42:21", + "src": "3973:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "value": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" }, - "src": "3877:64:21", + "src": "3951:64:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27660, + "id": 31808, "nodeType": "ExpressionStatement", - "src": "3877:64:21" + "src": "3951:64:30" }, { "expression": { - "id": 27666, + "id": 31814, "isConstant": false, "isLValue": false, "isPure": false, @@ -5175,28 +5220,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27661, + "id": 31809, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3954:6:21", + "referencedDeclaration": 31672, + "src": "4028:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27663, + "id": 31811, "indexExpression": { "hexValue": "57425443", - "id": 27662, + "id": 31810, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3961:6:21", + "src": "4035:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_98da2c5e4c6b1db946694570273b859a6e4083ccc8faa155edfc4c54eb3cfd73", "typeString": "literal_string \"WBTC\"" @@ -5208,22 +5253,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3954:14:21", + "src": "4028:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27664, + "id": 31812, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3969:4:21", + "memberLocation": "4043:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "3954:19:21", + "referencedDeclaration": 31662, + "src": "4028:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5232,30 +5277,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 27665, + "id": 31813, "name": "WBTC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27438, - "src": "3976:4:21", + "referencedDeclaration": 31583, + "src": "4050:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3954:26:21", + "src": "4028:26:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27667, + "id": 31815, "nodeType": "ExpressionStatement", - "src": "3954:26:21" + "src": "4028:26:30" }, { "expression": { - "id": 27673, + "id": 31821, "isConstant": false, "isLValue": false, "isPure": false, @@ -5263,28 +5308,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27668, + "id": 31816, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "3991:6:21", + "referencedDeclaration": 31672, + "src": "4065:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27670, + "id": 31818, "indexExpression": { "hexValue": "57425443", - "id": 27669, + "id": 31817, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3998:6:21", + "src": "4072:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_98da2c5e4c6b1db946694570273b859a6e4083ccc8faa155edfc4c54eb3cfd73", "typeString": "literal_string \"WBTC\"" @@ -5296,22 +5341,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3991:14:21", + "src": "4065:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27671, + "id": 31819, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4006:4:21", + "memberLocation": "4080:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "3991:19:21", + "referencedDeclaration": 31664, + "src": "4065:19:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5321,33 +5366,33 @@ "operator": "=", "rightHandSide": { "hexValue": "30", - "id": 27672, + "id": 31820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4013:1:21", + "src": "4087:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3991:23:21", + "src": "4065:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27674, + "id": 31822, "nodeType": "ExpressionStatement", - "src": "3991:23:21" + "src": "4065:23:30" }, { "expression": { - "id": 27680, + "id": 31828, "isConstant": false, "isLValue": false, "isPure": false, @@ -5355,28 +5400,28 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 27675, + "id": 31823, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "4025:6:21", + "referencedDeclaration": 31672, + "src": "4099:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27677, + "id": 31825, "indexExpression": { "hexValue": "57425443", - "id": 27676, + "id": 31824, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4032:6:21", + "src": "4106:6:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_98da2c5e4c6b1db946694570273b859a6e4083ccc8faa155edfc4c54eb3cfd73", "typeString": "literal_string \"WBTC\"" @@ -5388,22 +5433,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4025:14:21", + "src": "4099:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27678, + "id": 31826, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4040:4:21", + "memberLocation": "4114:4:30", "memberName": "orcl", "nodeType": "MemberAccess", - "referencedDeclaration": 27518, - "src": "4025:19:21", + "referencedDeclaration": 31666, + "src": "4099:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5413,29 +5458,29 @@ "operator": "=", "rightHandSide": { "hexValue": "307846343033303038363532326135624545613439383846386341354233366462433937426545383863", - "id": 27679, + "id": 31827, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4047:42:21", + "src": "4121:42:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "value": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c" }, - "src": "4025:64:21", + "src": "4099:64:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 27681, + "id": 31829, "nodeType": "ExpressionStatement", - "src": "4025:64:21" + "src": "4099:64:30" } ] }, @@ -5444,49 +5489,49 @@ "kind": "function", "modifiers": [], "name": "setUpTokens", - "nameLocation": "3555:11:21", + "nameLocation": "3629:11:30", "parameters": { - "id": 27603, + "id": 31751, "nodeType": "ParameterList", "parameters": [], - "src": "3566:2:21" + "src": "3640:2:30" }, "returnParameters": { - "id": 27604, + "id": 31752, "nodeType": "ParameterList", "parameters": [], - "src": "3576:0:21" + "src": "3650:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27747, + "id": 31895, "nodeType": "FunctionDefinition", - "src": "4147:461:21", + "src": "4221:461:30", "nodes": [], "body": { - "id": 27746, + "id": 31894, "nodeType": "Block", - "src": "4214:394:21", + "src": "4288:394:30", "nodes": [], "statements": [ { "assignments": [ - 27693 + 31841 ], "declarations": [ { "constant": false, - "id": 27693, + "id": 31841, "mutability": "mutable", "name": "addr", - "nameLocation": "4233:4:21", + "nameLocation": "4307:4:30", "nodeType": "VariableDeclaration", - "scope": 27746, - "src": "4225:12:21", + "scope": 31894, + "src": "4299:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5494,10 +5539,10 @@ "typeString": "address" }, "typeName": { - "id": 27692, + "id": 31840, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4225:7:21", + "src": "4299:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5507,29 +5552,29 @@ "visibility": "internal" } ], - "id": 27698, + "id": 31846, "initialValue": { "expression": { "baseExpression": { - "id": 27694, + "id": 31842, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "4240:6:21", + "referencedDeclaration": 31672, + "src": "4314:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27696, + "id": 31844, "indexExpression": { - "id": 27695, + "id": 31843, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27685, - "src": "4247:6:21", + "referencedDeclaration": 31833, + "src": "4321:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5540,44 +5585,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4240:14:21", + "src": "4314:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27697, + "id": 31845, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4255:4:21", + "memberLocation": "4329:4:30", "memberName": "addr", "nodeType": "MemberAccess", - "referencedDeclaration": 27514, - "src": "4240:19:21", + "referencedDeclaration": 31662, + "src": "4314:19:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4225:34:21" + "src": "4299:34:30" }, { "assignments": [ - 27700 + 31848 ], "declarations": [ { "constant": false, - "id": 27700, + "id": 31848, "mutability": "mutable", "name": "slot", - "nameLocation": "4278:4:21", + "nameLocation": "4352:4:30", "nodeType": "VariableDeclaration", - "scope": 27746, - "src": "4270:12:21", + "scope": 31894, + "src": "4344:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5585,10 +5630,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27699, + "id": 31847, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4270:7:21", + "src": "4344:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5597,29 +5642,29 @@ "visibility": "internal" } ], - "id": 27705, + "id": 31853, "initialValue": { "expression": { "baseExpression": { - "id": 27701, + "id": 31849, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27524, - "src": "4286:6:21", + "referencedDeclaration": 31672, + "src": "4360:6:30", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$27519_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Token_$31667_storage_$", "typeString": "mapping(bytes32 => struct Utility.Token storage ref)" } }, - "id": 27703, + "id": 31851, "indexExpression": { - "id": 27702, + "id": 31850, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27685, - "src": "4293:6:21", + "referencedDeclaration": 31833, + "src": "4367:6:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5630,44 +5675,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4286:14:21", + "src": "4360:14:30", "typeDescriptions": { - "typeIdentifier": "t_struct$_Token_$27519_storage", + "typeIdentifier": "t_struct$_Token_$31667_storage", "typeString": "struct Utility.Token storage ref" } }, - "id": 27704, + "id": 31852, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4301:4:21", + "memberLocation": "4375:4:30", "memberName": "slot", "nodeType": "MemberAccess", - "referencedDeclaration": 27516, - "src": "4286:19:21", + "referencedDeclaration": 31664, + "src": "4360:19:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4270:35:21" + "src": "4344:35:30" }, { "assignments": [ - 27707 + 31855 ], "declarations": [ { "constant": false, - "id": 27707, + "id": 31855, "mutability": "mutable", "name": "bal", - "nameLocation": "4324:3:21", + "nameLocation": "4398:3:30", "nodeType": "VariableDeclaration", - "scope": 27746, - "src": "4316:11:21", + "scope": 31894, + "src": "4390:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5675,10 +5720,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27706, + "id": 31854, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4316:7:21", + "src": "4390:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5687,16 +5732,16 @@ "visibility": "internal" } ], - "id": 27714, + "id": 31862, "initialValue": { "arguments": [ { - "id": 27712, + "id": 31860, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27687, - "src": "4353:7:21", + "referencedDeclaration": 31835, + "src": "4427:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5713,12 +5758,12 @@ "expression": { "arguments": [ { - "id": 27709, + "id": 31857, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27693, - "src": "4337:4:21", + "referencedDeclaration": 31841, + "src": "4411:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5732,18 +5777,18 @@ "typeString": "address" } ], - "id": 27708, + "id": 31856, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "4330:6:21", + "referencedDeclaration": 29158, + "src": "4404:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27710, + "id": 31858, "isConstant": false, "isLValue": false, "isPure": false, @@ -5752,29 +5797,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4330:12:21", + "src": "4404:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 27711, + "id": 31859, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4343:9:21", + "memberLocation": "4417:9:30", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26364, - "src": "4330:22:21", + "referencedDeclaration": 29097, + "src": "4404:22:30", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 27713, + "id": 31861, "isConstant": false, "isLValue": false, "isPure": false, @@ -5783,7 +5828,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4330:31:21", + "src": "4404:31:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5791,18 +5836,18 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4316:45:21" + "src": "4390:45:30" }, { "expression": { "arguments": [ { - "id": 27718, + "id": 31866, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27693, - "src": "4399:4:21", + "referencedDeclaration": 31841, + "src": "4473:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5813,24 +5858,24 @@ { "arguments": [ { - "id": 27722, + "id": 31870, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27687, - "src": "4439:7:21", + "referencedDeclaration": 31835, + "src": "4513:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 27723, + "id": 31871, "name": "slot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27700, - "src": "4448:4:21", + "referencedDeclaration": 31848, + "src": "4522:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5849,32 +5894,32 @@ } ], "expression": { - "id": 27720, + "id": 31868, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "4428:3:21", + "src": "4502:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 27721, + "id": 31869, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "4432:6:21", + "memberLocation": "4506:6:30", "memberName": "encode", "nodeType": "MemberAccess", - "src": "4428:10:21", + "src": "4502:10:30", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 27724, + "id": 31872, "isConstant": false, "isLValue": false, "isPure": false, @@ -5883,7 +5928,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4428:25:21", + "src": "4502:25:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -5898,18 +5943,18 @@ "typeString": "bytes memory" } ], - "id": 27719, + "id": 31867, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "4418:9:21", + "src": "4492:9:30", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 27725, + "id": 31873, "isConstant": false, "isLValue": false, "isPure": false, @@ -5918,7 +5963,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4418:36:21", + "src": "4492:36:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5932,18 +5977,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27730, + "id": 31878, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27728, + "id": 31876, "name": "bal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27707, - "src": "4492:3:21", + "referencedDeclaration": 31855, + "src": "4566:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5952,18 +5997,18 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 27729, + "id": 31877, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27689, - "src": "4498:3:21", + "referencedDeclaration": 31837, + "src": "4572:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4492:9:21", + "src": "4566:9:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5977,26 +6022,26 @@ "typeString": "uint256" } ], - "id": 27727, + "id": 31875, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4484:7:21", + "src": "4558:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 27726, + "id": 31874, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4484:7:21", + "src": "4558:7:30", "typeDescriptions": {} } }, - "id": 27731, + "id": 31879, "isConstant": false, "isLValue": false, "isPure": false, @@ -6005,7 +6050,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4484:18:21", + "src": "4558:18:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6029,33 +6074,33 @@ } ], "expression": { - "id": 27715, + "id": 31863, "name": "hevm", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27417, - "src": "4374:4:21", + "referencedDeclaration": 31562, + "src": "4448:4:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hevm_$27404", + "typeIdentifier": "t_contract$_Hevm_$31549", "typeString": "contract Hevm" } }, - "id": 27717, + "id": 31865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4379:5:21", + "memberLocation": "4453:5:30", "memberName": "store", "nodeType": "MemberAccess", - "referencedDeclaration": 27403, - "src": "4374:10:21", + "referencedDeclaration": 31548, + "src": "4448:10:30", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$", "typeString": "function (address,bytes32,bytes32) external" } }, - "id": 27732, + "id": 31880, "isConstant": false, "isLValue": false, "isPure": false, @@ -6064,16 +6109,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4374:139:21", + "src": "4448:139:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27733, + "id": 31881, "nodeType": "ExpressionStatement", - "src": "4374:139:21" + "src": "4448:139:30" }, { "expression": { @@ -6081,12 +6126,12 @@ { "arguments": [ { - "id": 27739, + "id": 31887, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27687, - "src": "4558:7:21", + "referencedDeclaration": 31835, + "src": "4632:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6103,12 +6148,12 @@ "expression": { "arguments": [ { - "id": 27736, + "id": 31884, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27693, - "src": "4542:4:21", + "referencedDeclaration": 31841, + "src": "4616:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6122,18 +6167,18 @@ "typeString": "address" } ], - "id": 27735, + "id": 31883, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "4535:6:21", + "referencedDeclaration": 29158, + "src": "4609:6:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 27737, + "id": 31885, "isConstant": false, "isLValue": false, "isPure": false, @@ -6142,29 +6187,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4535:12:21", + "src": "4609:12:30", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 27738, + "id": 31886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4548:9:21", + "memberLocation": "4622:9:30", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26364, - "src": "4535:22:21", + "referencedDeclaration": 29097, + "src": "4609:22:30", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 27740, + "id": 31888, "isConstant": false, "isLValue": false, "isPure": false, @@ -6173,7 +6218,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4535:31:21", + "src": "4609:31:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6185,18 +6230,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27743, + "id": 31891, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27741, + "id": 31889, "name": "bal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27707, - "src": "4568:3:21", + "referencedDeclaration": 31855, + "src": "4642:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6205,18 +6250,18 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 27742, + "id": 31890, "name": "amt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27689, - "src": "4574:3:21", + "referencedDeclaration": 31837, + "src": "4648:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4568:9:21", + "src": "4642:9:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6234,7 +6279,7 @@ "typeString": "uint256" } ], - "id": 27734, + "id": 31882, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6250,13 +6295,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "4526:8:21", + "src": "4600:8:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 27744, + "id": 31892, "isConstant": false, "isLValue": false, "isPure": false, @@ -6265,16 +6310,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4526:52:21", + "src": "4600:52:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27745, + "id": 31893, "nodeType": "ExpressionStatement", - "src": "4526:52:21" + "src": "4600:52:30" } ] }, @@ -6283,20 +6328,20 @@ "kind": "function", "modifiers": [], "name": "mint", - "nameLocation": "4156:4:21", + "nameLocation": "4230:4:30", "parameters": { - "id": 27690, + "id": 31838, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27685, + "id": 31833, "mutability": "mutable", "name": "symbol", - "nameLocation": "4169:6:21", + "nameLocation": "4243:6:30", "nodeType": "VariableDeclaration", - "scope": 27747, - "src": "4161:14:21", + "scope": 31895, + "src": "4235:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6304,10 +6349,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 27684, + "id": 31832, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4161:7:21", + "src": "4235:7:30", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6317,13 +6362,13 @@ }, { "constant": false, - "id": 27687, + "id": 31835, "mutability": "mutable", "name": "account", - "nameLocation": "4185:7:21", + "nameLocation": "4259:7:30", "nodeType": "VariableDeclaration", - "scope": 27747, - "src": "4177:15:21", + "scope": 31895, + "src": "4251:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6331,10 +6376,10 @@ "typeString": "address" }, "typeName": { - "id": 27686, + "id": 31834, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4177:7:21", + "src": "4251:7:30", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6345,13 +6390,13 @@ }, { "constant": false, - "id": 27689, + "id": 31837, "mutability": "mutable", "name": "amt", - "nameLocation": "4202:3:21", + "nameLocation": "4276:3:30", "nodeType": "VariableDeclaration", - "scope": 27747, - "src": "4194:11:21", + "scope": 31895, + "src": "4268:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6359,10 +6404,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27688, + "id": 31836, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4194:7:21", + "src": "4268:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6371,44 +6416,44 @@ "visibility": "internal" } ], - "src": "4160:46:21" + "src": "4234:46:30" }, "returnParameters": { - "id": 27691, + "id": 31839, "nodeType": "ParameterList", "parameters": [], - "src": "4214:0:21" + "src": "4288:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27823, + "id": 31971, "nodeType": "FunctionDefinition", - "src": "4666:583:21", + "src": "4740:583:30", "nodes": [], "body": { - "id": 27822, + "id": 31970, "nodeType": "Block", - "src": "4744:505:21", + "src": "4818:505:30", "nodes": [], "statements": [ { "assignments": [ - 27757 + 31905 ], "declarations": [ { "constant": false, - "id": 27757, + "id": 31905, "mutability": "mutable", "name": "diff", - "nameLocation": "4763:4:21", + "nameLocation": "4837:4:30", "nodeType": "VariableDeclaration", - "scope": 27822, - "src": "4755:12:21", + "scope": 31970, + "src": "4829:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6416,10 +6461,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27756, + "id": 31904, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4755:7:21", + "src": "4829:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6428,25 +6473,25 @@ "visibility": "internal" } ], - "id": 27768, + "id": 31916, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27760, + "id": 31908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27758, + "id": 31906, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4771:4:21", + "referencedDeclaration": 31897, + "src": "4845:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6455,18 +6500,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 27759, + "id": 31907, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "4778:4:21", + "referencedDeclaration": 31899, + "src": "4852:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4771:11:21", + "src": "4845:11:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6477,18 +6522,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27766, + "id": 31914, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27764, + "id": 31912, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "4799:4:21", + "referencedDeclaration": 31899, + "src": "4873:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6497,47 +6542,47 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27765, + "id": 31913, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4806:4:21", + "referencedDeclaration": 31897, + "src": "4880:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4799:11:21", + "src": "4873:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27767, + "id": 31915, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "4771:39:21", + "src": "4845:39:30", "trueExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27763, + "id": 31911, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27761, + "id": 31909, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4785:4:21", + "referencedDeclaration": 31897, + "src": "4859:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6546,18 +6591,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27762, + "id": 31910, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "4792:4:21", + "referencedDeclaration": 31899, + "src": "4866:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4785:11:21", + "src": "4859:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6569,7 +6614,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4755:55:21" + "src": "4829:55:30" }, { "condition": { @@ -6577,18 +6622,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27771, + "id": 31919, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27769, + "id": 31917, "name": "diff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27757, - "src": "4825:4:21", + "referencedDeclaration": 31905, + "src": "4899:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6598,50 +6643,50 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 27770, + "id": 31918, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4833:1:21", + "src": "4907:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4825:9:21", + "src": "4899:9:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 27773, + "id": 31921, "nodeType": "IfStatement", - "src": "4821:22:21", + "src": "4895:22:30", "trueBody": { - "functionReturnParameters": 27755, - "id": 27772, + "functionReturnParameters": 31903, + "id": 31920, "nodeType": "Return", - "src": "4836:7:21" + "src": "4910:7:30" } }, { "assignments": [ - 27775 + 31923 ], "declarations": [ { "constant": false, - "id": 27775, + "id": 31923, "mutability": "mutable", "name": "denominator", - "nameLocation": "4863:11:21", + "nameLocation": "4937:11:30", "nodeType": "VariableDeclaration", - "scope": 27822, - "src": "4855:19:21", + "scope": 31970, + "src": "4929:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6649,10 +6694,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27774, + "id": 31922, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4855:7:21", + "src": "4929:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6661,25 +6706,25 @@ "visibility": "internal" } ], - "id": 27782, + "id": 31930, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27778, + "id": 31926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27776, + "id": 31924, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4877:4:21", + "referencedDeclaration": 31897, + "src": "4951:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6689,52 +6734,52 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 27777, + "id": 31925, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4885:1:21", + "src": "4959:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4877:9:21", + "src": "4951:9:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { - "id": 27780, + "id": 31928, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "4896:4:21", + "referencedDeclaration": 31897, + "src": "4970:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27781, + "id": 31929, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "4877:23:21", + "src": "4951:23:30", "trueExpression": { - "id": 27779, + "id": 31927, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "4889:4:21", + "referencedDeclaration": 31899, + "src": "4963:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6746,22 +6791,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4855:45:21" + "src": "4929:45:30" }, { "assignments": [ - 27784 + 31932 ], "declarations": [ { "constant": false, - "id": 27784, + "id": 31932, "mutability": "mutable", "name": "check", - "nameLocation": "4916:5:21", + "nameLocation": "4990:5:30", "nodeType": "VariableDeclaration", - "scope": 27822, - "src": "4911:10:21", + "scope": 31970, + "src": "4985:10:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6769,10 +6814,10 @@ "typeString": "bool" }, "typeName": { - "id": 27783, + "id": 31931, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4911:4:21", + "src": "4985:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6781,13 +6826,13 @@ "visibility": "internal" } ], - "id": 27799, + "id": 31947, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27798, + "id": 31946, "isConstant": false, "isLValue": false, "isPure": false, @@ -6799,7 +6844,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27790, + "id": 31938, "isConstant": false, "isLValue": false, "isPure": false, @@ -6811,18 +6856,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27787, + "id": 31935, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27785, + "id": 31933, "name": "diff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27757, - "src": "4926:4:21", + "referencedDeclaration": 31905, + "src": "5000:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6831,32 +6876,32 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 27786, + "id": 31934, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27512, - "src": "4933:3:21", + "referencedDeclaration": 31660, + "src": "5007:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4926:10:21", + "src": "5000:10:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 27788, + "id": 31936, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4925:12:21", + "src": "4999:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6865,32 +6910,32 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 27789, + "id": 31937, "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27775, - "src": "4940:11:21", + "referencedDeclaration": 31923, + "src": "5014:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4925:26:21", + "src": "4999:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 27791, + "id": 31939, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4924:28:21", + "src": "4998:28:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6905,18 +6950,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27796, + "id": 31944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27792, + "id": 31940, "name": "RAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27512, - "src": "4956:3:21", + "referencedDeclaration": 31660, + "src": "5030:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6929,21 +6974,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27795, + "id": 31943, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 27793, + "id": 31941, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4962:2:21", + "src": "5036:2:30", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -6953,55 +6998,55 @@ "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { - "id": 27794, + "id": 31942, "name": "accuracy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27753, - "src": "4968:8:21", + "referencedDeclaration": 31901, + "src": "5042:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4962:14:21", + "src": "5036:14:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4956:20:21", + "src": "5030:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 27797, + "id": 31945, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4955:22:21", + "src": "5029:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4924:53:21", + "src": "4998:53:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "4911:66:21" + "src": "4985:66:30" }, { "condition": { - "id": 27801, + "id": 31949, "isConstant": false, "isLValue": false, "isPure": false, @@ -7009,14 +7054,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4994:6:21", + "src": "5068:6:30", "subExpression": { - "id": 27800, + "id": 31948, "name": "check", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27784, - "src": "4995:5:21", + "referencedDeclaration": 31932, + "src": "5069:5:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7027,27 +7072,27 @@ "typeString": "bool" } }, - "id": 27821, + "id": 31969, "nodeType": "IfStatement", - "src": "4990:252:21", + "src": "5064:252:30", "trueBody": { - "id": 27820, + "id": 31968, "nodeType": "Block", - "src": "5001:241:21", + "src": "5075:241:30", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a20617070726f782061203d3d2062206e6f74207361746973666965642c2061636375726163792064696769747320", - "id": 27803, + "id": 31951, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5036:54:21", + "src": "5110:54:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_94772435adb9a5e16afe18480e0e25583a903de130497d52a7375f0e3b0b0ffc", "typeString": "literal_string \"Error: approx a == b not satisfied, accuracy digits \"" @@ -7055,12 +7100,12 @@ "value": "Error: approx a == b not satisfied, accuracy digits " }, { - "id": 27804, + "id": 31952, "name": "accuracy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27753, - "src": "5092:8:21", + "referencedDeclaration": 31901, + "src": "5166:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7078,18 +7123,18 @@ "typeString": "uint256" } ], - "id": 27802, + "id": 31950, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5021:14:21", + "src": "5095:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27805, + "id": 31953, "isConstant": false, "isLValue": false, "isPure": false, @@ -7098,30 +7143,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5021:80:21", + "src": "5095:80:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27806, + "id": 31954, "nodeType": "EmitStatement", - "src": "5016:85:21" + "src": "5090:85:30" }, { "eventCall": { "arguments": [ { "hexValue": "20204578706563746564", - "id": 27808, + "id": 31956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5136:12:21", + "src": "5210:12:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" @@ -7129,12 +7174,12 @@ "value": " Expected" }, { - "id": 27809, + "id": 31957, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27749, - "src": "5150:4:21", + "referencedDeclaration": 31897, + "src": "5224:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7152,18 +7197,18 @@ "typeString": "uint256" } ], - "id": 27807, + "id": 31955, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5121:14:21", + "src": "5195:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27810, + "id": 31958, "isConstant": false, "isLValue": false, "isPure": false, @@ -7172,30 +7217,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5121:34:21", + "src": "5195:34:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27811, + "id": 31959, "nodeType": "EmitStatement", - "src": "5116:39:21" + "src": "5190:39:30" }, { "eventCall": { "arguments": [ { "hexValue": "2020202041637475616c", - "id": 27813, + "id": 31961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5190:12:21", + "src": "5264:12:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" @@ -7203,12 +7248,12 @@ "value": " Actual" }, { - "id": 27814, + "id": 31962, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27751, - "src": "5204:4:21", + "referencedDeclaration": 31899, + "src": "5278:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7226,18 +7271,18 @@ "typeString": "uint256" } ], - "id": 27812, + "id": 31960, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5175:14:21", + "src": "5249:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27815, + "id": 31963, "isConstant": false, "isLValue": false, "isPure": false, @@ -7246,34 +7291,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5175:34:21", + "src": "5249:34:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27816, + "id": 31964, "nodeType": "EmitStatement", - "src": "5170:39:21" + "src": "5244:39:30" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 27817, + "id": 31965, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, - "src": "5224:4:21", + "src": "5298:4:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 27818, + "id": 31966, "isConstant": false, "isLValue": false, "isPure": false, @@ -7282,16 +7327,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5224:6:21", + "src": "5298:6:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27819, + "id": 31967, "nodeType": "ExpressionStatement", - "src": "5224:6:21" + "src": "5298:6:30" } ] } @@ -7303,20 +7348,20 @@ "kind": "function", "modifiers": [], "name": "withinPrecision", - "nameLocation": "4675:15:21", + "nameLocation": "4749:15:30", "parameters": { - "id": 27754, + "id": 31902, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27749, + "id": 31897, "mutability": "mutable", "name": "val0", - "nameLocation": "4699:4:21", + "nameLocation": "4773:4:30", "nodeType": "VariableDeclaration", - "scope": 27823, - "src": "4691:12:21", + "scope": 31971, + "src": "4765:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7324,10 +7369,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27748, + "id": 31896, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4691:7:21", + "src": "4765:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7337,13 +7382,13 @@ }, { "constant": false, - "id": 27751, + "id": 31899, "mutability": "mutable", "name": "val1", - "nameLocation": "4713:4:21", + "nameLocation": "4787:4:30", "nodeType": "VariableDeclaration", - "scope": 27823, - "src": "4705:12:21", + "scope": 31971, + "src": "4779:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7351,10 +7396,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27750, + "id": 31898, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4705:7:21", + "src": "4779:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7364,13 +7409,13 @@ }, { "constant": false, - "id": 27753, + "id": 31901, "mutability": "mutable", "name": "accuracy", - "nameLocation": "4727:8:21", + "nameLocation": "4801:8:30", "nodeType": "VariableDeclaration", - "scope": 27823, - "src": "4719:16:21", + "scope": 31971, + "src": "4793:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7378,10 +7423,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27752, + "id": 31900, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4719:7:21", + "src": "4793:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7390,44 +7435,44 @@ "visibility": "internal" } ], - "src": "4690:46:21" + "src": "4764:46:30" }, "returnParameters": { - "id": 27755, + "id": 31903, "nodeType": "ParameterList", "parameters": [], - "src": "4744:0:21" + "src": "4818:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27874, + "id": 32022, "nodeType": "FunctionDefinition", - "src": "5300:479:21", + "src": "5374:479:30", "nodes": [], "body": { - "id": 27873, + "id": 32021, "nodeType": "Block", - "src": "5377:402:21", + "src": "5451:402:30", "nodes": [], "statements": [ { "assignments": [ - 27833 + 31981 ], "declarations": [ { "constant": false, - "id": 27833, + "id": 31981, "mutability": "mutable", "name": "actualDiff", - "nameLocation": "5396:10:21", + "nameLocation": "5470:10:30", "nodeType": "VariableDeclaration", - "scope": 27873, - "src": "5388:18:21", + "scope": 32021, + "src": "5462:18:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7435,10 +7480,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27832, + "id": 31980, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5388:7:21", + "src": "5462:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7447,25 +7492,25 @@ "visibility": "internal" } ], - "id": 27844, + "id": 31992, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27836, + "id": 31984, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27834, + "id": 31982, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27825, - "src": "5409:4:21", + "referencedDeclaration": 31973, + "src": "5483:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7474,18 +7519,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 27835, + "id": 31983, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27827, - "src": "5416:4:21", + "referencedDeclaration": 31975, + "src": "5490:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5409:11:21", + "src": "5483:11:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7496,18 +7541,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27842, + "id": 31990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27840, + "id": 31988, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27827, - "src": "5437:4:21", + "referencedDeclaration": 31975, + "src": "5511:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7516,47 +7561,47 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27841, + "id": 31989, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27825, - "src": "5444:4:21", + "referencedDeclaration": 31973, + "src": "5518:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5437:11:21", + "src": "5511:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 27843, + "id": 31991, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "5409:39:21", + "src": "5483:39:30", "trueExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27839, + "id": 31987, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27837, + "id": 31985, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27825, - "src": "5423:4:21", + "referencedDeclaration": 31973, + "src": "5497:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7565,18 +7610,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27838, + "id": 31986, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27827, - "src": "5430:4:21", + "referencedDeclaration": 31975, + "src": "5504:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5423:11:21", + "src": "5497:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7588,22 +7633,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5388:60:21" + "src": "5462:60:30" }, { "assignments": [ - 27846 + 31994 ], "declarations": [ { "constant": false, - "id": 27846, + "id": 31994, "mutability": "mutable", "name": "check", - "nameLocation": "5464:5:21", + "nameLocation": "5538:5:30", "nodeType": "VariableDeclaration", - "scope": 27873, - "src": "5459:10:21", + "scope": 32021, + "src": "5533:10:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7611,10 +7656,10 @@ "typeString": "bool" }, "typeName": { - "id": 27845, + "id": 31993, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5459:4:21", + "src": "5533:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7623,24 +7668,24 @@ "visibility": "internal" } ], - "id": 27850, + "id": 31998, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27849, + "id": 31997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27847, + "id": 31995, "name": "actualDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27833, - "src": "5472:10:21", + "referencedDeclaration": 31981, + "src": "5546:10:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7649,29 +7694,29 @@ "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { - "id": 27848, + "id": 31996, "name": "expectedDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27829, - "src": "5486:12:21", + "referencedDeclaration": 31977, + "src": "5560:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5472:26:21", + "src": "5546:26:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "5459:39:21" + "src": "5533:39:30" }, { "condition": { - "id": 27852, + "id": 32000, "isConstant": false, "isLValue": false, "isPure": false, @@ -7679,14 +7724,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5515:6:21", + "src": "5589:6:30", "subExpression": { - "id": 27851, + "id": 31999, "name": "check", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27846, - "src": "5516:5:21", + "referencedDeclaration": 31994, + "src": "5590:5:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7697,27 +7742,27 @@ "typeString": "bool" } }, - "id": 27872, + "id": 32020, "nodeType": "IfStatement", - "src": "5511:261:21", + "src": "5585:261:30", "trueBody": { - "id": 27871, + "id": 32019, "nodeType": "Block", - "src": "5523:249:21", + "src": "5597:249:30", "statements": [ { "eventCall": { "arguments": [ { "hexValue": "4572726f723a20617070726f782061203d3d2062206e6f74207361746973666965642c20616363757261637920646966666572656e636520", - "id": 27854, + "id": 32002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5558:58:21", + "src": "5632:58:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_96172d3974b4dd800f0469c3a6568537958d8450292a90b9e1d84055f2a54229", "typeString": "literal_string \"Error: approx a == b not satisfied, accuracy difference \"" @@ -7725,12 +7770,12 @@ "value": "Error: approx a == b not satisfied, accuracy difference " }, { - "id": 27855, + "id": 32003, "name": "expectedDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27829, - "src": "5618:12:21", + "referencedDeclaration": 31977, + "src": "5692:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7748,18 +7793,18 @@ "typeString": "uint256" } ], - "id": 27853, + "id": 32001, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5543:14:21", + "src": "5617:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27856, + "id": 32004, "isConstant": false, "isLValue": false, "isPure": false, @@ -7768,30 +7813,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5543:88:21", + "src": "5617:88:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27857, + "id": 32005, "nodeType": "EmitStatement", - "src": "5538:93:21" + "src": "5612:93:30" }, { "eventCall": { "arguments": [ { "hexValue": "20204578706563746564", - "id": 27859, + "id": 32007, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5666:12:21", + "src": "5740:12:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" @@ -7799,12 +7844,12 @@ "value": " Expected" }, { - "id": 27860, + "id": 32008, "name": "val0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27825, - "src": "5680:4:21", + "referencedDeclaration": 31973, + "src": "5754:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7822,18 +7867,18 @@ "typeString": "uint256" } ], - "id": 27858, + "id": 32006, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5651:14:21", + "src": "5725:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27861, + "id": 32009, "isConstant": false, "isLValue": false, "isPure": false, @@ -7842,30 +7887,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5651:34:21", + "src": "5725:34:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27862, + "id": 32010, "nodeType": "EmitStatement", - "src": "5646:39:21" + "src": "5720:39:30" }, { "eventCall": { "arguments": [ { "hexValue": "2020202041637475616c", - "id": 27864, + "id": 32012, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5720:12:21", + "src": "5794:12:30", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" @@ -7873,12 +7918,12 @@ "value": " Actual" }, { - "id": 27865, + "id": 32013, "name": "val1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27827, - "src": "5734:4:21", + "referencedDeclaration": 31975, + "src": "5808:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7896,18 +7941,18 @@ "typeString": "uint256" } ], - "id": 27863, + "id": 32011, "name": "log_named_uint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, - "src": "5705:14:21", + "src": "5779:14:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256)" } }, - "id": 27866, + "id": 32014, "isConstant": false, "isLValue": false, "isPure": false, @@ -7916,34 +7961,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5705:34:21", + "src": "5779:34:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27867, + "id": 32015, "nodeType": "EmitStatement", - "src": "5700:39:21" + "src": "5774:39:30" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 27868, + "id": 32016, "name": "fail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, - "src": "5754:4:21", + "src": "5828:4:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 27869, + "id": 32017, "isConstant": false, "isLValue": false, "isPure": false, @@ -7952,16 +7997,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5754:6:21", + "src": "5828:6:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27870, + "id": 32018, "nodeType": "ExpressionStatement", - "src": "5754:6:21" + "src": "5828:6:30" } ] } @@ -7973,20 +8018,20 @@ "kind": "function", "modifiers": [], "name": "withinDiff", - "nameLocation": "5309:10:21", + "nameLocation": "5383:10:30", "parameters": { - "id": 27830, + "id": 31978, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27825, + "id": 31973, "mutability": "mutable", "name": "val0", - "nameLocation": "5328:4:21", + "nameLocation": "5402:4:30", "nodeType": "VariableDeclaration", - "scope": 27874, - "src": "5320:12:21", + "scope": 32022, + "src": "5394:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7994,10 +8039,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27824, + "id": 31972, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5320:7:21", + "src": "5394:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8007,13 +8052,13 @@ }, { "constant": false, - "id": 27827, + "id": 31975, "mutability": "mutable", "name": "val1", - "nameLocation": "5342:4:21", + "nameLocation": "5416:4:30", "nodeType": "VariableDeclaration", - "scope": 27874, - "src": "5334:12:21", + "scope": 32022, + "src": "5408:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8021,10 +8066,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27826, + "id": 31974, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5334:7:21", + "src": "5408:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8034,13 +8079,13 @@ }, { "constant": false, - "id": 27829, + "id": 31977, "mutability": "mutable", "name": "expectedDiff", - "nameLocation": "5356:12:21", + "nameLocation": "5430:12:30", "nodeType": "VariableDeclaration", - "scope": 27874, - "src": "5348:20:21", + "scope": 32022, + "src": "5422:20:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8048,10 +8093,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27828, + "id": 31976, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5348:7:21", + "src": "5422:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8060,64 +8105,64 @@ "visibility": "internal" } ], - "src": "5319:50:21" + "src": "5393:50:30" }, "returnParameters": { - "id": 27831, + "id": 31979, "nodeType": "ParameterList", "parameters": [], - "src": "5377:0:21" + "src": "5451:0:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27893, + "id": 32041, "nodeType": "FunctionDefinition", - "src": "5787:159:21", + "src": "5861:159:30", "nodes": [], "body": { - "id": 27892, + "id": 32040, "nodeType": "Block", - "src": "5882:64:21", + "src": "5956:64:30", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 27886, + "id": 32034, "name": "val", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27876, - "src": "5917:3:21", + "referencedDeclaration": 32024, + "src": "5991:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 27887, + "id": 32035, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27878, - "src": "5922:3:21", + "referencedDeclaration": 32026, + "src": "5996:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 27888, + "id": 32036, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27880, - "src": "5927:3:21", + "referencedDeclaration": 32028, + "src": "6001:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8125,14 +8170,14 @@ }, { "hexValue": "66616c7365", - "id": 27889, + "id": 32037, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5932:5:21", + "src": "6006:5:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8159,21 +8204,21 @@ "typeString": "bool" } ], - "id": 27885, + "id": 32033, "name": "constrictToRange", "nodeType": "Identifier", "overloadedDeclarations": [ - 27893, - 27931 + 32041, + 32079 ], - "referencedDeclaration": 27931, - "src": "5900:16:21", + "referencedDeclaration": 32079, + "src": "5974:16:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256,bool) pure returns (uint256)" } }, - "id": 27890, + "id": 32038, "isConstant": false, "isLValue": false, "isPure": false, @@ -8182,17 +8227,17 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5900:38:21", + "src": "5974:38:30", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 27884, - "id": 27891, + "functionReturnParameters": 32032, + "id": 32039, "nodeType": "Return", - "src": "5893:45:21" + "src": "5967:45:30" } ] }, @@ -8201,20 +8246,20 @@ "kind": "function", "modifiers": [], "name": "constrictToRange", - "nameLocation": "5796:16:21", + "nameLocation": "5870:16:30", "parameters": { - "id": 27881, + "id": 32029, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27876, + "id": 32024, "mutability": "mutable", "name": "val", - "nameLocation": "5821:3:21", + "nameLocation": "5895:3:30", "nodeType": "VariableDeclaration", - "scope": 27893, - "src": "5813:11:21", + "scope": 32041, + "src": "5887:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8222,10 +8267,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27875, + "id": 32023, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5813:7:21", + "src": "5887:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8235,13 +8280,13 @@ }, { "constant": false, - "id": 27878, + "id": 32026, "mutability": "mutable", "name": "min", - "nameLocation": "5834:3:21", + "nameLocation": "5908:3:30", "nodeType": "VariableDeclaration", - "scope": 27893, - "src": "5826:11:21", + "scope": 32041, + "src": "5900:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8249,10 +8294,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27877, + "id": 32025, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5826:7:21", + "src": "5900:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8262,13 +8307,13 @@ }, { "constant": false, - "id": 27880, + "id": 32028, "mutability": "mutable", "name": "max", - "nameLocation": "5847:3:21", + "nameLocation": "5921:3:30", "nodeType": "VariableDeclaration", - "scope": 27893, - "src": "5839:11:21", + "scope": 32041, + "src": "5913:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8276,10 +8321,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27879, + "id": 32027, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5839:7:21", + "src": "5913:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8288,21 +8333,21 @@ "visibility": "internal" } ], - "src": "5812:39:21" + "src": "5886:39:30" }, "returnParameters": { - "id": 27884, + "id": 32032, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27883, + "id": 32031, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27893, - "src": "5873:7:21", + "scope": 32041, + "src": "5947:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8310,10 +8355,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27882, + "id": 32030, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5873:7:21", + "src": "5947:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8322,22 +8367,22 @@ "visibility": "internal" } ], - "src": "5872:9:21" + "src": "5946:9:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "pure", "virtual": false, "visibility": "public" }, { - "id": 27931, + "id": 32079, "nodeType": "FunctionDefinition", - "src": "5954:291:21", + "src": "6028:291:30", "nodes": [], "body": { - "id": 27930, + "id": 32078, "nodeType": "Block", - "src": "6063:182:21", + "src": "6137:182:30", "nodes": [], "statements": [ { @@ -8346,7 +8391,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 27911, + "id": 32059, "isConstant": false, "isLValue": false, "isPure": false, @@ -8356,18 +8401,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27908, + "id": 32056, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27906, + "id": 32054, "name": "val", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27895, - "src": "6083:3:21", + "referencedDeclaration": 32043, + "src": "6157:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8377,21 +8422,21 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 27907, + "id": 32055, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6090:1:21", + "src": "6164:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "6083:8:21", + "src": "6157:8:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8400,7 +8445,7 @@ "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { - "id": 27910, + "id": 32058, "isConstant": false, "isLValue": false, "isPure": false, @@ -8408,14 +8453,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "6095:8:21", + "src": "6169:8:30", "subExpression": { - "id": 27909, + "id": 32057, "name": "nonZero", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27901, - "src": "6096:7:21", + "referencedDeclaration": 32049, + "src": "6170:7:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8426,7 +8471,7 @@ "typeString": "bool" } }, - "src": "6083:20:21", + "src": "6157:20:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8438,18 +8483,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27916, + "id": 32064, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27914, + "id": 32062, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27899, - "src": "6133:3:21", + "referencedDeclaration": 32047, + "src": "6207:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8458,18 +8503,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 27915, + "id": 32063, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27897, - "src": "6140:3:21", + "referencedDeclaration": 32045, + "src": "6214:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6133:10:21", + "src": "6207:10:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8481,7 +8526,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27926, + "id": 32074, "isConstant": false, "isLValue": false, "isPure": false, @@ -8491,18 +8536,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27924, + "id": 32072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27919, + "id": 32067, "name": "val", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27895, - "src": "6214:3:21", + "referencedDeclaration": 32043, + "src": "6288:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8517,18 +8562,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 27922, + "id": 32070, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 27920, + "id": 32068, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27899, - "src": "6221:3:21", + "referencedDeclaration": 32047, + "src": "6295:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8537,38 +8582,38 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 27921, + "id": 32069, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27897, - "src": "6227:3:21", + "referencedDeclaration": 32045, + "src": "6301:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6221:9:21", + "src": "6295:9:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 27923, + "id": 32071, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "6220:11:21", + "src": "6294:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6214:17:21", + "src": "6288:17:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8577,74 +8622,74 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 27925, + "id": 32073, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27897, - "src": "6234:3:21", + "referencedDeclaration": 32045, + "src": "6308:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6214:23:21", + "src": "6288:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 27905, - "id": 27927, + "functionReturnParameters": 32053, + "id": 32075, "nodeType": "Return", - "src": "6207:30:21" + "src": "6281:30:30" }, - "id": 27928, + "id": 32076, "nodeType": "IfStatement", - "src": "6129:108:21", + "src": "6203:108:30", "trueBody": { "expression": { - "id": 27917, + "id": 32065, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27899, - "src": "6162:3:21", + "referencedDeclaration": 32047, + "src": "6236:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 27905, - "id": 27918, + "functionReturnParameters": 32053, + "id": 32066, "nodeType": "Return", - "src": "6155:10:21" + "src": "6229:10:30" } }, - "id": 27929, + "id": 32077, "nodeType": "IfStatement", - "src": "6074:163:21", + "src": "6148:163:30", "trueBody": { "expression": { "hexValue": "30", - "id": 27912, + "id": 32060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6112:1:21", + "src": "6186:1:30", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "functionReturnParameters": 27905, - "id": 27913, + "functionReturnParameters": 32053, + "id": 32061, "nodeType": "Return", - "src": "6105:8:21" + "src": "6179:8:30" } } ] @@ -8654,20 +8699,20 @@ "kind": "function", "modifiers": [], "name": "constrictToRange", - "nameLocation": "5963:16:21", + "nameLocation": "6037:16:30", "parameters": { - "id": 27902, + "id": 32050, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27895, + "id": 32043, "mutability": "mutable", "name": "val", - "nameLocation": "5988:3:21", + "nameLocation": "6062:3:30", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "5980:11:21", + "scope": 32079, + "src": "6054:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8675,10 +8720,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27894, + "id": 32042, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5980:7:21", + "src": "6054:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8688,13 +8733,13 @@ }, { "constant": false, - "id": 27897, + "id": 32045, "mutability": "mutable", "name": "min", - "nameLocation": "6001:3:21", + "nameLocation": "6075:3:30", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "5993:11:21", + "scope": 32079, + "src": "6067:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8702,10 +8747,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27896, + "id": 32044, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5993:7:21", + "src": "6067:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8715,13 +8760,13 @@ }, { "constant": false, - "id": 27899, + "id": 32047, "mutability": "mutable", "name": "max", - "nameLocation": "6014:3:21", + "nameLocation": "6088:3:30", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "6006:11:21", + "scope": 32079, + "src": "6080:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8729,10 +8774,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27898, + "id": 32046, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6006:7:21", + "src": "6080:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8742,13 +8787,13 @@ }, { "constant": false, - "id": 27901, + "id": 32049, "mutability": "mutable", "name": "nonZero", - "nameLocation": "6024:7:21", + "nameLocation": "6098:7:30", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "6019:12:21", + "scope": 32079, + "src": "6093:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8756,10 +8801,10 @@ "typeString": "bool" }, "typeName": { - "id": 27900, + "id": 32048, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6019:4:21", + "src": "6093:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8768,21 +8813,21 @@ "visibility": "internal" } ], - "src": "5979:53:21" + "src": "6053:53:30" }, "returnParameters": { - "id": 27905, + "id": 32053, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 27904, + "id": 32052, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27931, - "src": "6054:7:21", + "scope": 32079, + "src": "6128:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8790,10 +8835,10 @@ "typeString": "uint256" }, "typeName": { - "id": 27903, + "id": 32051, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6054:7:21", + "src": "6128:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8802,9 +8847,9 @@ "visibility": "internal" } ], - "src": "6053:9:21" + "src": "6127:9:30" }, - "scope": 27932, + "scope": 32080, "stateMutability": "pure", "virtual": false, "visibility": "public" @@ -8814,37 +8859,37 @@ "baseContracts": [ { "baseName": { - "id": 27413, + "id": 31558, "name": "DSTest", "nameLocations": [ - "469:6:21" + "469:6:30" ], "nodeType": "IdentifierPath", "referencedDeclaration": 1786, - "src": "469:6:21" + "src": "469:6:30" }, - "id": 27414, + "id": 31559, "nodeType": "InheritanceSpecifier", - "src": "469:6:21" + "src": "469:6:30" } ], "canonicalName": "Utility", "contractDependencies": [ - 27385 + 30379 ], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 27932, + 32080, 1786 ], "name": "Utility", - "nameLocation": "458:7:21", - "scope": 27933, + "nameLocation": "458:7:30", + "scope": 32081, "usedErrors": [] } ], "license": "AGPL-3.0-or-later" }, - "id": 21 + "id": 30 } \ No newline at end of file diff --git a/out/Vesting.sol/Vesting.json b/out/Vesting.sol/Vesting.json index 5a031b7..3085eec 100644 --- a/out/Vesting.sol/Vesting.json +++ b/out/Vesting.sol/Vesting.json @@ -143,6 +143,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "getAllVestedTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -308,6 +321,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "totalTokensToVest", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -362,26 +388,26 @@ } ], "bytecode": { - "object": "0x60a06040523480156200001157600080fd5b506040516200191b3803806200191b8339810160408190526200003491620001b2565b600080546001600160a01b03191633908117825560405190918291600080516020620018fb833981519152908290a3506001600160a01b0382166080526200007c8162000084565b5050620001ea565b6000546001600160a01b03163314620000e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0381166200014b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620000db565b600080546040516001600160a01b0380851693921691600080516020620018fb83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b0381168114620001ad57600080fd5b919050565b60008060408385031215620001c657600080fd5b620001d18362000195565b9150620001e16020840162000195565b90509250929050565b6080516116e762000214600039600081816101bd0152818161080f0152610bc201526116e76000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806385d4cad3116100a2578063d36862e811610071578063d36862e81461022e578063dd46706414610241578063ec20b45714610254578063f02c6d8f14610267578063f2fde38b1461027057600080fd5b806385d4cad3146101b857806388a772ef146101f75780638da5cb5b1461020a578063c7e42b1b1461021b57600080fd5b80635b904cb7116100de5780635b904cb7146101685780636f7bc9be14610170578063715018a6146101a35780637f87bbd6146101ab57600080fd5b80630bca8bcd1461011057806342714978146101365780634e71d92d1461014b57806350ad827a14610153575b600080fd5b61012361011e3660046114ba565b610283565b6040519081526020015b60405180910390f35b6101496101443660046114ba565b6103fb565b005b610149610689565b61015b610966565b60405161012d91906114dc565b6101496109e8565b61019361017e3660046114ba565b60066020526000908152604090205460ff1681565b604051901515815260200161012d565b610149610ac7565b6004546101939060ff1681565b6101df7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161012d565b6101236102053660046114ba565b610b3b565b6000546001600160a01b03166101df565b6101496102293660046114ba565b610b96565b61012361023c3660046114ba565b610f28565b61014961024f36600461153e565b610f83565b610149610262366004611557565b61101a565b61012360035481565b61014961027e3660046114ba565b6112bb565b6001600160a01b03811660009081526006602052604081205460ff1680156102ad575060045460ff165b156103ee5760006102bd836113a5565b905060006102ca84610b3b565b905080600583815481106102e0576102e0611581565b90600052602060002090600302016002015410610301575060009392505050565b60006224ea006003544261031591906115ad565b61031f91906115c6565b9050600060646103308460086115e8565b61033a91906115c6565b61034490836115e8565b606461035185600c6115e8565b61035b91906115c6565b61036591906115ff565b9050828111806103765750600b8210155b156103b2576005848154811061038e5761038e611581565b906000526020600020906003020160020154836103ab91906115ad565b90506103e5565b600584815481106103c5576103c5611581565b906000526020600020906003020160020154816103e291906115ad565b90505b95945050505050565b506000919050565b919050565b6000546001600160a01b0316331461042e5760405162461bcd60e51b815260040161042590611612565b60405180910390fd5b6001600160a01b0381166104aa5760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f7420626520616464726573732830290000000000006064820152608401610425565b60006104b5826113a5565b90506000600582815481106104cc576104cc611581565b600091825260209182902060408051606081018252600390930290910180546001600160a01b03168352600180820154948401949094526002015490820152600580549193509161051c916115ad565b8154811061052c5761052c611581565b90600052602060002090600302016005838154811061054d5761054d611581565b60009182526020909120825460039092020180546001600160a01b0319166001600160a01b039092169190911781556001808301548183015560029283015492909101919091556005805483926105a3916115ad565b815481106105b3576105b3611581565b600091825260209182902083516003929092020180546001600160a01b0319166001600160a01b03909216919091178155908201516001820155604090910151600290910155600580548061060a5761060a611647565b6000828152602080822060036000199094019384020180546001600160a01b031916815560018101839055600201829055919092556001600160a01b03851680835260069091526040808320805460ff191690555190917fba0013628ccb89af5bb18edf764d3a7b35c07b894848b8e6fd3434719de39c7d91a2505050565b3360009081526006602052604090205460ff1615156001146107135760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f720000000000006064820152608401610425565b60045460ff166107795760405162461bcd60e51b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b6064820152608401610425565b600061078433610283565b9050600081116107f35760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b6064820152608401610425565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610860573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610884919061165d565b6108e35760405162461bcd60e51b815260206004820152602a60248201527f56657374696e672e736f6c3a3a636c61696d2829207472616e7366657220756e6044820152691cdd58d8d95cdcd99d5b60b21b6064820152608401610425565b60006108ee336113a5565b9050816005828154811061090457610904611581565b9060005260206000209060030201600201600082825461092491906115ff565b909155505060408051338152602081018490527fc9ff33ee3842ec05cab3a4e2b17aa19694b6c461ea543be5752366f912a6539d910160405180910390a15050565b60606005805480602002602001604051908101604052809291908181526020016000905b828210156109df576000848152602090819020604080516060810182526003860290920180546001600160a01b031683526001808201548486015260029091015491830191909152908352909201910161098a565b50505050905090565b6000546001600160a01b03163314610a125760405162461bcd60e51b815260040161042590611612565b60045460ff1615610a8b5760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a656e61626c6556657374696e6728292076657360448201527f74696e6720697320616c726561647920656e61626c65640000000000000000006064820152608401610425565b6004805460ff19166001179055426003556040517ff78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa390600090a1565b6000546001600160a01b03163314610af15760405162461bcd60e51b815260040161042590611612565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03811660009081526006602052604081205460ff16156103ee576000610b67836113a5565b905060058181548110610b7c57610b7c611581565b906000526020600020906003020160010154915050919050565b6000546001600160a01b03163314610bc05760405162461bcd60e51b815260040161042590611612565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610c675760405162461bcd60e51b815260206004820152603960248201527f56657374696e672e736f6c3a3a7769746864726177457263323028292063616e60448201527f6e6f74207769746864726177202450524f564520746f6b656e000000000000006064820152608401610425565b6001600160a01b038116610ce35760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920746f6b60448201527f656e2063616e6e6f7420626520616464726573732830290000000000000000006064820152608401610425565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4e919061167f565b905060008111610dc65760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920696e7360448201527f756666696369656e7420746f6b656e2062616c616e63650000000000000000006064820152608401610425565b6000826001600160a01b031663a9059cbb610de96000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a919061165d565b905080610ec45760405162461bcd60e51b815260206004820152603260248201527f56657374696e672e736f6c3a3a776974686472617745726332302829207472616044820152711b9cd9995c881d5b9cdd58d8d95cdcd99d5b60721b6064820152608401610425565b7f3ff9434501bb42cce78344c3420ec1273f8b404aba16aaae994c0d413b91bb4f8383610ef96000546001600160a01b031690565b604080516001600160a01b039485168152602081019390935292168183015290519081900360600190a1505050565b6001600160a01b03811660009081526006602052604081205460ff16156103ee576000610f54836113a5565b905060058181548110610f6957610f69611581565b906000526020600020906003020160020154915050919050565b6000546001600160a01b03163314610fad5760405162461bcd60e51b815260040161042590611612565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610fdc81426115ff565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000546001600160a01b031633146110445760405162461bcd60e51b815260040161042590611612565b6001600160a01b03821660009081526006602052604090205460ff16156110ca5760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b6064820152608401610425565b6001600160a01b0382166111465760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f74206265206164647265737328302900000000000000006064820152608401610425565b600081116111b45760405162461bcd60e51b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b6064820152608401610425565b6001600160a01b0382811660008181526006602090815260408083208054600160ff1990911681179091558151606081018352858152928301878152838301858152600580549384018155865293517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0600390930292830180546001600160a01b031916919098161790965594517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db186015590517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db290940193909355915190917f62e6a5118be03f9bfedb79b0ed7ed75ee4a9e15fc4c69d2c4976acde26fa2d5f91a25050565b6000546001600160a01b031633146112e55760405162461bcd60e51b815260040161042590611612565b6001600160a01b03811661134a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610425565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526006602052604081205460ff1615156001146114385760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f7200000000000000006064820152608401610425565b6000805b60055481101561149c57836001600160a01b03166005828154811061146357611463611581565b60009182526020909120600390910201546001600160a01b03160361148a5780915061149c565b8061149481611698565b91505061143c565b5092915050565b80356001600160a01b03811681146103f657600080fd5b6000602082840312156114cc57600080fd5b6114d5826114a3565b9392505050565b602080825282518282018190526000919060409081850190868401855b8281101561153157815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016114f9565b5091979650505050505050565b60006020828403121561155057600080fd5b5035919050565b6000806040838503121561156a57600080fd5b611573836114a3565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156115c0576115c0611597565b92915050565b6000826115e357634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176115c0576115c0611597565b808201808211156115c0576115c0611597565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561166f57600080fd5b815180151581146114d557600080fd5b60006020828403121561169157600080fd5b5051919050565b6000600182016116aa576116aa611597565b506001019056fea2646970667358221220157b3eae9a1ae2e7d7cc252855d7fcf62c788bb02ed633aa778f7e49daee3f3f64736f6c634300081100338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "sourceMap": "494:9716:16:-:0;;;1724:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;955:17:18;998:18;;-1:-1:-1;;;;;;998:18:18;699:10:17;998:18:18;;;;;1032:43;;699:10:17;;;;-1:-1:-1;;;;;;;;;;;1032:43:18;955:17;;1032:43;-1:-1:-1;;;;;;1784:24:16;;;;1819:25;1837:6;1819:17;:25::i;:::-;1724:128;;494:9716;;2118:244:18;1210:7;1237:6;-1:-1:-1;;;;;1237:6:18;699:10:17;1384:23:18;1376:68;;;;-1:-1:-1;;;1376:68:18;;696:2:23;1376:68:18;;;678:21:23;;;715:18;;;708:30;774:34;754:18;;;747:62;826:18;;1376:68:18;;;;;;;;;-1:-1:-1;;;;;2207:22:18;::::1;2199:73;;;::::0;-1:-1:-1;;;2199:73:18;;1057:2:23;2199:73:18::1;::::0;::::1;1039:21:23::0;1096:2;1076:18;;;1069:30;1135:34;1115:18;;;1108:62;-1:-1:-1;;;1186:18:23;;;1179:36;1232:19;;2199:73:18::1;855:402:23::0;2199:73:18::1;2309:6;::::0;;2288:38:::1;::::0;-1:-1:-1;;;;;2288:38:18;;::::1;::::0;2309:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2288:38:18;::::1;2337:6;:17:::0;;-1:-1:-1;;;;;;2337:17:18::1;-1:-1:-1::0;;;;;2337:17:18;;;::::1;::::0;;;::::1;::::0;;2118:244::o;14:177:23:-;93:13;;-1:-1:-1;;;;;135:31:23;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;855:402::-;494:9716:16;;;;;;;;;;;;;;;;;;;;;;", + "object": "0x60a06040523480156200001157600080fd5b5060405162001962380380620019628339810160408190526200003491620001b2565b600080546001600160a01b0319163390811782556040519091829160008051602062001942833981519152908290a3506001600160a01b0382166080526200007c8162000084565b5050620001ea565b6000546001600160a01b03163314620000e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0381166200014b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620000db565b600080546040516001600160a01b03808516939216916000805160206200194283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b0381168114620001ad57600080fd5b919050565b60008060408385031215620001c657600080fd5b620001d18362000195565b9150620001e16020840162000195565b90509250929050565b60805161172e62000214600039600081816101d7015281816108320152610be5015261172e6000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806385d4cad3116100ad578063d36862e811610071578063d36862e814610251578063dd46706414610264578063ec20b45714610277578063f02c6d8f1461028a578063f2fde38b1461029357600080fd5b806385d4cad3146101d257806388a772ef146102115780638da5cb5b14610224578063a145f1b514610235578063c7e42b1b1461023e57600080fd5b806350ad827a116100f457806350ad827a1461016d5780635b904cb7146101825780636f7bc9be1461018a578063715018a6146101bd5780637f87bbd6146101c557600080fd5b806308ac7624146101265780630bca8bcd1461013d57806342714978146101505780634e71d92d14610165575b600080fd5b6005545b6040519081526020015b60405180910390f35b61012a61014b366004611501565b6102a6565b61016361015e366004611501565b61041e565b005b6101636106ac565b610175610989565b6040516101349190611523565b610163610a0b565b6101ad610198366004611501565b60076020526000908152604090205460ff1681565b6040519015158152602001610134565b610163610aea565b6004546101ad9060ff1681565b6101f97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610134565b61012a61021f366004611501565b610b5e565b6000546001600160a01b03166101f9565b61012a60055481565b61016361024c366004611501565b610bb9565b61012a61025f366004611501565b610f4b565b610163610272366004611585565b610fa6565b61016361028536600461159e565b61103d565b61012a60035481565b6101636102a1366004611501565b611302565b6001600160a01b03811660009081526007602052604081205460ff1680156102d0575060045460ff165b156104115760006102e0836113ec565b905060006102ed84610b5e565b90508060068381548110610303576103036115c8565b90600052602060002090600302016002015410610324575060009392505050565b60006224ea006003544261033891906115f4565b610342919061160d565b90506000606461035384600861162f565b61035d919061160d565b610367908361162f565b606461037485600c61162f565b61037e919061160d565b6103889190611646565b9050828111806103995750600b8210155b156103d557600684815481106103b1576103b16115c8565b906000526020600020906003020160020154836103ce91906115f4565b9050610408565b600684815481106103e8576103e86115c8565b9060005260206000209060030201600201548161040591906115f4565b90505b95945050505050565b506000919050565b919050565b6000546001600160a01b031633146104515760405162461bcd60e51b815260040161044890611659565b60405180910390fd5b6001600160a01b0381166104cd5760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f7420626520616464726573732830290000000000006064820152608401610448565b60006104d8826113ec565b90506000600682815481106104ef576104ef6115c8565b600091825260209182902060408051606081018252600390930290910180546001600160a01b03168352600180820154948401949094526002015490820152600680549193509161053f916115f4565b8154811061054f5761054f6115c8565b906000526020600020906003020160068381548110610570576105706115c8565b60009182526020909120825460039092020180546001600160a01b0319166001600160a01b039092169190911781556001808301548183015560029283015492909101919091556006805483926105c6916115f4565b815481106105d6576105d66115c8565b600091825260209182902083516003929092020180546001600160a01b0319166001600160a01b03909216919091178155908201516001820155604090910151600290910155600680548061062d5761062d61168e565b6000828152602080822060036000199094019384020180546001600160a01b031916815560018101839055600201829055919092556001600160a01b03851680835260079091526040808320805460ff191690555190917fba0013628ccb89af5bb18edf764d3a7b35c07b894848b8e6fd3434719de39c7d91a2505050565b3360009081526007602052604090205460ff1615156001146107365760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f720000000000006064820152608401610448565b60045460ff1661079c5760405162461bcd60e51b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b6064820152608401610448565b60006107a7336102a6565b9050600081116108165760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b6064820152608401610448565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116a4565b6109065760405162461bcd60e51b815260206004820152602a60248201527f56657374696e672e736f6c3a3a636c61696d2829207472616e7366657220756e6044820152691cdd58d8d95cdcd99d5b60b21b6064820152608401610448565b6000610911336113ec565b90508160068281548110610927576109276115c8565b906000526020600020906003020160020160008282546109479190611646565b909155505060408051338152602081018490527fc9ff33ee3842ec05cab3a4e2b17aa19694b6c461ea543be5752366f912a6539d910160405180910390a15050565b60606006805480602002602001604051908101604052809291908181526020016000905b82821015610a02576000848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016109ad565b50505050905090565b6000546001600160a01b03163314610a355760405162461bcd60e51b815260040161044890611659565b60045460ff1615610aae5760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a656e61626c6556657374696e6728292076657360448201527f74696e6720697320616c726561647920656e61626c65640000000000000000006064820152608401610448565b6004805460ff19166001179055426003556040517ff78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa390600090a1565b6000546001600160a01b03163314610b145760405162461bcd60e51b815260040161044890611659565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03811660009081526007602052604081205460ff1615610411576000610b8a836113ec565b905060068181548110610b9f57610b9f6115c8565b906000526020600020906003020160010154915050919050565b6000546001600160a01b03163314610be35760405162461bcd60e51b815260040161044890611659565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610c8a5760405162461bcd60e51b815260206004820152603960248201527f56657374696e672e736f6c3a3a7769746864726177457263323028292063616e60448201527f6e6f74207769746864726177202450524f564520746f6b656e000000000000006064820152608401610448565b6001600160a01b038116610d065760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920746f6b60448201527f656e2063616e6e6f7420626520616464726573732830290000000000000000006064820152608401610448565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7191906116c6565b905060008111610de95760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920696e7360448201527f756666696369656e7420746f6b656e2062616c616e63650000000000000000006064820152608401610448565b6000826001600160a01b031663a9059cbb610e0c6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d91906116a4565b905080610ee75760405162461bcd60e51b815260206004820152603260248201527f56657374696e672e736f6c3a3a776974686472617745726332302829207472616044820152711b9cd9995c881d5b9cdd58d8d95cdcd99d5b60721b6064820152608401610448565b7f3ff9434501bb42cce78344c3420ec1273f8b404aba16aaae994c0d413b91bb4f8383610f1c6000546001600160a01b031690565b604080516001600160a01b039485168152602081019390935292168183015290519081900360600190a1505050565b6001600160a01b03811660009081526007602052604081205460ff1615610411576000610f77836113ec565b905060068181548110610f8c57610f8c6115c8565b906000526020600020906003020160020154915050919050565b6000546001600160a01b03163314610fd05760405162461bcd60e51b815260040161044890611659565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610fff8142611646565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000546001600160a01b031633146110675760405162461bcd60e51b815260040161044890611659565b6001600160a01b03821660009081526007602052604090205460ff16156110ed5760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b6064820152608401610448565b6001600160a01b0382166111695760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f74206265206164647265737328302900000000000000006064820152608401610448565b600081116111d75760405162461bcd60e51b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b6064820152608401610448565b6001600160a01b0382811660008181526007602090815260408083208054600160ff1990911681179091558151606081018352948552918401868152908401838152600680549384018155845293517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600390930292830180546001600160a01b031916919096161790945592517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4084015590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4190920191909155600580548392906112c5908490611646565b90915550506040516001600160a01b038316907f62e6a5118be03f9bfedb79b0ed7ed75ee4a9e15fc4c69d2c4976acde26fa2d5f90600090a25050565b6000546001600160a01b0316331461132c5760405162461bcd60e51b815260040161044890611659565b6001600160a01b0381166113915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610448565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526007602052604081205460ff16151560011461147f5760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f7200000000000000006064820152608401610448565b6000805b6006548110156114e357836001600160a01b0316600682815481106114aa576114aa6115c8565b60009182526020909120600390910201546001600160a01b0316036114d1578091506114e3565b806114db816116df565b915050611483565b5092915050565b80356001600160a01b038116811461041957600080fd5b60006020828403121561151357600080fd5b61151c826114ea565b9392505050565b602080825282518282018190526000919060409081850190868401855b8281101561157857815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101611540565b5091979650505050505050565b60006020828403121561159757600080fd5b5035919050565b600080604083850312156115b157600080fd5b6115ba836114ea565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115611607576116076115de565b92915050565b60008261162a57634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417611607576116076115de565b80820180821115611607576116076115de565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156116b657600080fd5b8151801515811461151c57600080fd5b6000602082840312156116d857600080fd5b5051919050565b6000600182016116f1576116f16115de565b506001019056fea2646970667358221220d2355449aa619c52df97b3ae1052a171b8fa5fa41104c173bef64d6cc1fd6c1b64736f6c634300081100338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "sourceMap": "490:10064:18:-:0;;;1761:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;955:17:20;998:18;;-1:-1:-1;;;;;;998:18:20;699:10:19;998:18:20;;;;;1032:43;;699:10:19;;;;-1:-1:-1;;;;;;;;;;;1032:43:20;955:17;;1032:43;-1:-1:-1;;;;;;1821:24:18;;;;1856:25;1874:6;1856:17;:25::i;:::-;1761:128;;490:10064;;2118:244:20;1210:7;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;696:2:32;1376:68:20;;;678:21:32;;;715:18;;;708:30;774:34;754:18;;;747:62;826:18;;1376:68:20;;;;;;;;;-1:-1:-1;;;;;2207:22:20;::::1;2199:73;;;::::0;-1:-1:-1;;;2199:73:20;;1057:2:32;2199:73:20::1;::::0;::::1;1039:21:32::0;1096:2;1076:18;;;1069:30;1135:34;1115:18;;;1108:62;-1:-1:-1;;;1186:18:32;;;1179:36;1232:19;;2199:73:20::1;855:402:32::0;2199:73:20::1;2309:6;::::0;;2288:38:::1;::::0;-1:-1:-1;;;;;2288:38:20;;::::1;::::0;2309:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2288:38:20;::::1;2337:6;:17:::0;;-1:-1:-1;;;;;;2337:17:20::1;-1:-1:-1::0;;;;;2337:17:20;;;::::1;::::0;;;::::1;::::0;;2118:244::o;14:177:32:-;93:13;;-1:-1:-1;;;;;135:31:32;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;855:402::-;490:10064:18;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806385d4cad3116100a2578063d36862e811610071578063d36862e81461022e578063dd46706414610241578063ec20b45714610254578063f02c6d8f14610267578063f2fde38b1461027057600080fd5b806385d4cad3146101b857806388a772ef146101f75780638da5cb5b1461020a578063c7e42b1b1461021b57600080fd5b80635b904cb7116100de5780635b904cb7146101685780636f7bc9be14610170578063715018a6146101a35780637f87bbd6146101ab57600080fd5b80630bca8bcd1461011057806342714978146101365780634e71d92d1461014b57806350ad827a14610153575b600080fd5b61012361011e3660046114ba565b610283565b6040519081526020015b60405180910390f35b6101496101443660046114ba565b6103fb565b005b610149610689565b61015b610966565b60405161012d91906114dc565b6101496109e8565b61019361017e3660046114ba565b60066020526000908152604090205460ff1681565b604051901515815260200161012d565b610149610ac7565b6004546101939060ff1681565b6101df7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161012d565b6101236102053660046114ba565b610b3b565b6000546001600160a01b03166101df565b6101496102293660046114ba565b610b96565b61012361023c3660046114ba565b610f28565b61014961024f36600461153e565b610f83565b610149610262366004611557565b61101a565b61012360035481565b61014961027e3660046114ba565b6112bb565b6001600160a01b03811660009081526006602052604081205460ff1680156102ad575060045460ff165b156103ee5760006102bd836113a5565b905060006102ca84610b3b565b905080600583815481106102e0576102e0611581565b90600052602060002090600302016002015410610301575060009392505050565b60006224ea006003544261031591906115ad565b61031f91906115c6565b9050600060646103308460086115e8565b61033a91906115c6565b61034490836115e8565b606461035185600c6115e8565b61035b91906115c6565b61036591906115ff565b9050828111806103765750600b8210155b156103b2576005848154811061038e5761038e611581565b906000526020600020906003020160020154836103ab91906115ad565b90506103e5565b600584815481106103c5576103c5611581565b906000526020600020906003020160020154816103e291906115ad565b90505b95945050505050565b506000919050565b919050565b6000546001600160a01b0316331461042e5760405162461bcd60e51b815260040161042590611612565b60405180910390fd5b6001600160a01b0381166104aa5760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f7420626520616464726573732830290000000000006064820152608401610425565b60006104b5826113a5565b90506000600582815481106104cc576104cc611581565b600091825260209182902060408051606081018252600390930290910180546001600160a01b03168352600180820154948401949094526002015490820152600580549193509161051c916115ad565b8154811061052c5761052c611581565b90600052602060002090600302016005838154811061054d5761054d611581565b60009182526020909120825460039092020180546001600160a01b0319166001600160a01b039092169190911781556001808301548183015560029283015492909101919091556005805483926105a3916115ad565b815481106105b3576105b3611581565b600091825260209182902083516003929092020180546001600160a01b0319166001600160a01b03909216919091178155908201516001820155604090910151600290910155600580548061060a5761060a611647565b6000828152602080822060036000199094019384020180546001600160a01b031916815560018101839055600201829055919092556001600160a01b03851680835260069091526040808320805460ff191690555190917fba0013628ccb89af5bb18edf764d3a7b35c07b894848b8e6fd3434719de39c7d91a2505050565b3360009081526006602052604090205460ff1615156001146107135760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f720000000000006064820152608401610425565b60045460ff166107795760405162461bcd60e51b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b6064820152608401610425565b600061078433610283565b9050600081116107f35760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b6064820152608401610425565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610860573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610884919061165d565b6108e35760405162461bcd60e51b815260206004820152602a60248201527f56657374696e672e736f6c3a3a636c61696d2829207472616e7366657220756e6044820152691cdd58d8d95cdcd99d5b60b21b6064820152608401610425565b60006108ee336113a5565b9050816005828154811061090457610904611581565b9060005260206000209060030201600201600082825461092491906115ff565b909155505060408051338152602081018490527fc9ff33ee3842ec05cab3a4e2b17aa19694b6c461ea543be5752366f912a6539d910160405180910390a15050565b60606005805480602002602001604051908101604052809291908181526020016000905b828210156109df576000848152602090819020604080516060810182526003860290920180546001600160a01b031683526001808201548486015260029091015491830191909152908352909201910161098a565b50505050905090565b6000546001600160a01b03163314610a125760405162461bcd60e51b815260040161042590611612565b60045460ff1615610a8b5760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a656e61626c6556657374696e6728292076657360448201527f74696e6720697320616c726561647920656e61626c65640000000000000000006064820152608401610425565b6004805460ff19166001179055426003556040517ff78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa390600090a1565b6000546001600160a01b03163314610af15760405162461bcd60e51b815260040161042590611612565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03811660009081526006602052604081205460ff16156103ee576000610b67836113a5565b905060058181548110610b7c57610b7c611581565b906000526020600020906003020160010154915050919050565b6000546001600160a01b03163314610bc05760405162461bcd60e51b815260040161042590611612565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610c675760405162461bcd60e51b815260206004820152603960248201527f56657374696e672e736f6c3a3a7769746864726177457263323028292063616e60448201527f6e6f74207769746864726177202450524f564520746f6b656e000000000000006064820152608401610425565b6001600160a01b038116610ce35760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920746f6b60448201527f656e2063616e6e6f7420626520616464726573732830290000000000000000006064820152608401610425565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4e919061167f565b905060008111610dc65760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920696e7360448201527f756666696369656e7420746f6b656e2062616c616e63650000000000000000006064820152608401610425565b6000826001600160a01b031663a9059cbb610de96000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a919061165d565b905080610ec45760405162461bcd60e51b815260206004820152603260248201527f56657374696e672e736f6c3a3a776974686472617745726332302829207472616044820152711b9cd9995c881d5b9cdd58d8d95cdcd99d5b60721b6064820152608401610425565b7f3ff9434501bb42cce78344c3420ec1273f8b404aba16aaae994c0d413b91bb4f8383610ef96000546001600160a01b031690565b604080516001600160a01b039485168152602081019390935292168183015290519081900360600190a1505050565b6001600160a01b03811660009081526006602052604081205460ff16156103ee576000610f54836113a5565b905060058181548110610f6957610f69611581565b906000526020600020906003020160020154915050919050565b6000546001600160a01b03163314610fad5760405162461bcd60e51b815260040161042590611612565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610fdc81426115ff565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000546001600160a01b031633146110445760405162461bcd60e51b815260040161042590611612565b6001600160a01b03821660009081526006602052604090205460ff16156110ca5760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b6064820152608401610425565b6001600160a01b0382166111465760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f74206265206164647265737328302900000000000000006064820152608401610425565b600081116111b45760405162461bcd60e51b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b6064820152608401610425565b6001600160a01b0382811660008181526006602090815260408083208054600160ff1990911681179091558151606081018352858152928301878152838301858152600580549384018155865293517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0600390930292830180546001600160a01b031916919098161790965594517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db186015590517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db290940193909355915190917f62e6a5118be03f9bfedb79b0ed7ed75ee4a9e15fc4c69d2c4976acde26fa2d5f91a25050565b6000546001600160a01b031633146112e55760405162461bcd60e51b815260040161042590611612565b6001600160a01b03811661134a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610425565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526006602052604081205460ff1615156001146114385760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f7200000000000000006064820152608401610425565b6000805b60055481101561149c57836001600160a01b03166005828154811061146357611463611581565b60009182526020909120600390910201546001600160a01b03160361148a5780915061149c565b8061149481611698565b91505061143c565b5092915050565b80356001600160a01b03811681146103f657600080fd5b6000602082840312156114cc57600080fd5b6114d5826114a3565b9392505050565b602080825282518282018190526000919060409081850190868401855b8281101561153157815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016114f9565b5091979650505050505050565b60006020828403121561155057600080fd5b5035919050565b6000806040838503121561156a57600080fd5b611573836114a3565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156115c0576115c0611597565b92915050565b6000826115e357634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176115c0576115c0611597565b808201808211156115c0576115c0611597565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561166f57600080fd5b815180151581146114d557600080fd5b60006020828403121561169157600080fd5b5051919050565b6000600182016116aa576116aa611597565b506001019056fea2646970667358221220157b3eae9a1ae2e7d7cc252855d7fcf62c788bb02ed633aa778f7e49daee3f3f64736f6c63430008110033", - "sourceMap": "494:9716:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7352:949;;;;;;:::i;:::-;;:::i;:::-;;;529:25:23;;;517:2;502:18;7352:949:16;;;;;;;;5327:529;;;;;;:::i;:::-;;:::i;:::-;;3530:699;;;:::i;10096:111::-;;;:::i;:::-;;;;;;;:::i;6024:261::-;;;:::i;1292:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1608:14:23;;1601:22;1583:41;;1571:2;1556:18;1292:41:16;1443:187:23;1815:148:18;;;:::i;781:26:16:-;;;;;;;;;605:35;;;;;;;;-1:-1:-1;;;;;1799:32:23;;;1781:51;;1769:2;1754:18;605:35:16;1635:203:23;9005:286:16;;;;;;:::i;:::-;;:::i;1164:87:18:-;1210:7;1237:6;-1:-1:-1;;;;;1237:6:18;1164:87;;6472:636:16;;;;;;:::i;:::-;;:::i;8502:290::-;;;;;;:::i;:::-;;:::i;2444:226:18:-;;;;;;:::i;:::-;;:::i;4615:548:16:-;;;;;;:::i;:::-;;:::i;688:31::-;;;;;;2118:244:18;;;;;;:::i;:::-;;:::i;7352:949:16:-;-1:-1:-1;;;;;7441:19:16;;7417:7;7441:19;;;:9;:19;;;;;;;;:37;;;;-1:-1:-1;7464:14:16;;;;7441:37;7437:857;;;7497:11;7511:24;7526:8;7511:14;:24::i;:::-;7497:38;;7552:17;7572:25;7588:8;7572:15;:25::i;:::-;7552:45;;7656:12;7618:15;7634:3;7618:20;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;;:50;7614:99;;-1:-1:-1;7696:1:16;;7352:949;-1:-1:-1;;;7352:949:16:o;7614:99::-;7729:17;7789:7;7769:16;;7751:15;:34;;;;:::i;:::-;7750:46;;;;:::i;:::-;7729:68;-1:-1:-1;7813:18:16;7898:3;7879:16;:12;7894:1;7879:16;:::i;:::-;:22;;;;:::i;:::-;7863:39;;:12;:39;:::i;:::-;7855:3;7835:17;:12;7850:2;7835:17;:::i;:::-;:23;;;;:::i;:::-;7834:69;;;;:::i;:::-;7813:90;;7940:12;7924:13;:28;:50;;;;7972:2;7956:12;:18;;7924:50;7920:276;;;8026:15;8042:3;8026:20;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;;8011:12;:49;;;;:::i;:::-;7995:65;;7920:276;;;8146:15;8162:3;8146:20;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;;8130:13;:50;;;;:::i;:::-;8114:66;;7920:276;8219:13;7352:949;-1:-1:-1;;;;;7352:949:16:o;7437:857::-;-1:-1:-1;8281:1:16;;7352:949;-1:-1:-1;7352:949:16:o;7437:857::-;7352:949;;;:::o;5327:529::-;1210:7:18;1237:6;-1:-1:-1;;;;;1237:6:18;699:10:17;1384:23:18;1376:68;;;;-1:-1:-1;;;1376:68:18;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5409:22:16;::::1;5401:93;;;::::0;-1:-1:-1;;;5401:93:16;;3772:2:23;5401:93:16::1;::::0;::::1;3754:21:23::0;3811:2;3791:18;;;3784:30;3850:34;3830:18;;;3823:62;3921:28;3901:18;;;3894:56;3967:19;;5401:93:16::1;3570:422:23::0;5401:93:16::1;5507:11;5521:24;5536:8;5521:14;:24::i;:::-;5507:38;;5558:20;5581:15;5597:3;5581:20;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;5558:43:::1;::::0;;::::1;::::0;::::1;::::0;;5581:20:::1;::::0;;::::1;::::0;;::::1;5558:43:::0;;-1:-1:-1;;;;;5558:43:16::1;::::0;;;;;::::1;::::0;;;::::1;::::0;;;;::::1;;::::0;;;;;5635:15:::1;5651:22:::0;;5558:43;;-1:-1:-1;5635:15:16;5651:24:::1;::::0;::::1;:::i;:::-;5635:41;;;;;;;;:::i;:::-;;;;;;;;;;;5612:15;5628:3;5612:20;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:64;;:20:::1;::::0;;::::1;;:64:::0;;-1:-1:-1;;;;;;5612:64:16::1;-1:-1:-1::0;;;;;5612:64:16;;::::1;::::0;;;::::1;::::0;;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;5687:15:::1;5703:22:::0;;5731:4;;5703:24:::1;::::0;::::1;:::i;:::-;5687:41;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;:48;;:41:::1;::::0;;;::::1;;:48:::0;;-1:-1:-1;;;;;;5687:48:16::1;-1:-1:-1::0;;;;;5687:48:16;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;-1:-1:-1;5687:48:16;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;5746:15:::1;:21:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;5746:21:16;;;;;::::1;;::::0;;-1:-1:-1;;;;;;5746:21:16::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;;;;;;-1:-1:-1;;;;;5778:19:16;::::1;::::0;;;:9:::1;:19:::0;;;;;;;:27;;-1:-1:-1;;5778:27:16::1;::::0;;5823:25;5778:19;;5823:25:::1;::::0;::::1;5390:466;;5327:529:::0;:::o;3530:699::-;2033:10;2023:21;;;;:9;:21;;;;;;;;:29;;:21;:29;2015:100;;;;-1:-1:-1;;;2015:100:16;;4331:2:23;2015:100:16;;;4313:21:23;4370:2;4350:18;;;4343:30;4409:34;4389:18;;;4382:62;4480:28;4460:18;;;4453:56;4526:19;;2015:100:16;4129:422:23;2015:100:16;3590:14:::1;::::0;::::1;;3582:70;;;::::0;-1:-1:-1;;;3582:70:16;;4758:2:23;3582:70:16::1;::::0;::::1;4740:21:23::0;4797:2;4777:18;;;4770:30;4836:34;4816:18;;;4809:62;-1:-1:-1;;;4887:18:23;;;4880:41;4938:19;;3582:70:16::1;4556:407:23::0;3582:70:16::1;3663:21;3687:28;3704:10;3687:16;:28::i;:::-;3663:52;;3750:1;3734:13;:17;3726:82;;;::::0;-1:-1:-1;;;3726:82:16;;5170:2:23;3726:82:16::1;::::0;::::1;5152:21:23::0;5209:2;5189:18;;;5182:30;5248:34;5228:18;;;5221:62;-1:-1:-1;;;5299:18:23;;;5292:50;5359:19;;3726:82:16::1;4968:416:23::0;3726:82:16::1;3861:54;::::0;-1:-1:-1;;;3861:54:16;;3889:10:::1;3861:54;::::0;::::1;5563:51:23::0;5630:18;;;5623:34;;;3868:10:16::1;-1:-1:-1::0;;;;;3861:27:16::1;::::0;::::1;::::0;5536:18:23;;3861:54:16::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3853:109;;;::::0;-1:-1:-1;;;3853:109:16;;6152:2:23;3853:109:16::1;::::0;::::1;6134:21:23::0;6191:2;6171:18;;;6164:30;6230:34;6210:18;;;6203:62;-1:-1:-1;;;6281:18:23;;;6274:40;6331:19;;3853:109:16::1;5950:406:23::0;3853:109:16::1;4018:11;4032:26;4047:10;4032:14;:26::i;:::-;4018:40;;4151:13;4113:15;4129:3;4113:20;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;;:51;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;4182:39:16::1;::::0;;4195:10:::1;5563:51:23::0;;5645:2;5630:18;;5623:34;;;4182:39:16::1;::::0;5536:18:23;4182:39:16::1;;;;;;;3571:658;;3530:699::o:0;10096:111::-;10147:17;10184:15;10177:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10177:22:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10096:111;:::o;6024:261::-;1210:7:18;1237:6;-1:-1:-1;;;;;1237:6:18;699:10:17;1384:23:18;1376:68;;;;-1:-1:-1;;;1376:68:18;;;;;;;:::i;:::-;6090:14:16::1;::::0;::::1;;6089:15;6081:83;;;::::0;-1:-1:-1;;;6081:83:16;;6563:2:23;6081:83:16::1;::::0;::::1;6545:21:23::0;6602:2;6582:18;;;6575:30;6641:34;6621:18;;;6614:62;6712:25;6692:18;;;6685:53;6755:19;;6081:83:16::1;6361:419:23::0;6081:83:16::1;6177:14;:21:::0;;-1:-1:-1;;6177:21:16::1;6194:4;6177:21;::::0;;6228:15:::1;6209:16;:34:::0;6261:16:::1;::::0;::::1;::::0;6177:14:::1;::::0;6261:16:::1;6024:261::o:0;1815:148:18:-;1210:7;1237:6;-1:-1:-1;;;;;1237:6:18;699:10:17;1384:23:18;1376:68;;;;-1:-1:-1;;;1376:68:18;;;;;;;:::i;:::-;1922:1:::1;1906:6:::0;;1885:40:::1;::::0;-1:-1:-1;;;;;1906:6:18;;::::1;::::0;1885:40:::1;::::0;1922:1;;1885:40:::1;1953:1;1936:19:::0;;-1:-1:-1;;;;;;1936:19:18::1;::::0;;1815:148::o;9005:286:16:-;-1:-1:-1;;;;;9093:19:16;;9069:7;9093:19;;;:9;:19;;;;;;;;9089:195;;;9129:11;9143:24;9158:8;9143:14;:24::i;:::-;9129:38;;9189:15;9205:3;9189:20;;;;;;;;:::i;:::-;;;;;;;;;;;:33;;;9182:40;;;9005:286;;;:::o;6472:636::-;1210:7:18;1237:6;-1:-1:-1;;;;;1237:6:18;699:10:17;1384:23:18;1376:68;;;;-1:-1:-1;;;1376:68:18;;;;;;;:::i;:::-;6559:10:16::1;-1:-1:-1::0;;;;;6550:19:16::1;:5;-1:-1:-1::0;;;;;6550:19:16::1;::::0;6542:89:::1;;;::::0;-1:-1:-1;;;6542:89:16;;6987:2:23;6542:89:16::1;::::0;::::1;6969:21:23::0;7026:2;7006:18;;;6999:30;7065:34;7045:18;;;7038:62;7136:27;7116:18;;;7109:55;7181:19;;6542:89:16::1;6785:421:23::0;6542:89:16::1;-1:-1:-1::0;;;;;6650:19:16;::::1;6642:87;;;::::0;-1:-1:-1;;;6642:87:16;;7413:2:23;6642:87:16::1;::::0;::::1;7395:21:23::0;7452:2;7432:18;;;7425:30;7491:34;7471:18;;;7464:62;7562:25;7542:18;;;7535:53;7605:19;;6642:87:16::1;7211:419:23::0;6642:87:16::1;6760:38;::::0;-1:-1:-1;;;6760:38:16;;6792:4:::1;6760:38;::::0;::::1;1781:51:23::0;6742:15:16::1;::::0;-1:-1:-1;;;;;6760:23:16;::::1;::::0;::::1;::::0;1754:18:23;;6760:38:16::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6742:56;;6827:1;6817:7;:11;6809:79;;;::::0;-1:-1:-1;;;6809:79:16;;8026:2:23;6809:79:16::1;::::0;::::1;8008:21:23::0;8065:2;8045:18;;;8038:30;8104:34;8084:18;;;8077:62;8175:25;8155:18;;;8148:53;8218:19;;6809:79:16::1;7824:419:23::0;6809:79:16::1;6901:12;6923:5;-1:-1:-1::0;;;;;6916:22:16::1;;6939:7;1210::18::0;1237:6;-1:-1:-1;;;;;1237:6:18;;1164:87;6939:7:16::1;6916:40;::::0;-1:-1:-1;;;;;;6916:40:16::1;::::0;;;;;;-1:-1:-1;;;;;5581:32:23;;;6916:40:16::1;::::0;::::1;5563:51:23::0;5630:18;;;5623:34;;;5536:18;;6916:40:16::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6901:55;;6975:7;6967:70;;;::::0;-1:-1:-1;;;6967:70:16;;8450:2:23;6967:70:16::1;::::0;::::1;8432:21:23::0;8489:2;8469:18;;;8462:30;8528:34;8508:18;;;8501:62;-1:-1:-1;;;8579:18:23;;;8572:48;8637:19;;6967:70:16::1;8248:414:23::0;6967:70:16::1;7055:45;7076:5;7083:7;7092;1210::18::0;1237:6;-1:-1:-1;;;;;1237:6:18;;1164:87;7092:7:16::1;7055:45;::::0;;-1:-1:-1;;;;;8925:15:23;;;8907:34;;8972:2;8957:18;;8950:34;;;;9020:15;;9000:18;;;8993:43;7055:45:16;;;;;;8857:2:23;7055:45:16;;::::1;6531:577;;6472:636:::0;:::o;8502:290::-;-1:-1:-1;;;;;8591:19:16;;8567:7;8591:19;;;:9;:19;;;;;;;;8587:198;;;8629:11;8643:24;8658:8;8643:14;:24::i;:::-;8629:38;;8689:15;8705:3;8689:20;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;;8682:41;;;8502:290;;;:::o;2444:226:18:-;1210:7;1237:6;-1:-1:-1;;;;;1237:6:18;699:10:17;1384:23:18;1376:68;;;;-1:-1:-1;;;1376:68:18;;;;;;;:::i;:::-;2525:6:::1;::::0;;;2508:23;;-1:-1:-1;;;;;;2508:23:18;;::::1;-1:-1:-1::0;;;;;2525:6:18;::::1;2508:23;::::0;;;2542:19:::1;::::0;;2584:22:::1;2602:4:::0;2584:15:::1;:22;:::i;:::-;2572:9;:34:::0;2659:1:::1;2643:6:::0;;2622:40:::1;::::0;-1:-1:-1;;;;;2643:6:18;;::::1;::::0;2622:40:::1;::::0;2659:1;;2622:40:::1;2444:226:::0;:::o;4615:548:16:-;1210:7:18;1237:6;-1:-1:-1;;;;;1237:6:18;699:10:17;1384:23:18;1376:68;;;;-1:-1:-1;;;1376:68:18;;;;;;;:::i;:::-;-1:-1:-1;;;;;4717:19:16;::::1;;::::0;;;:9:::1;:19;::::0;;;;;::::1;;:28;4709:93;;;::::0;-1:-1:-1;;;4709:93:16;;9249:2:23;4709:93:16::1;::::0;::::1;9231:21:23::0;9288:2;9268:18;;;9261:30;9327:34;9307:18;;;9300:62;-1:-1:-1;;;9378:18:23;;;9371:50;9438:19;;4709:93:16::1;9047:416:23::0;4709:93:16::1;-1:-1:-1::0;;;;;4821:22:16;::::1;4813:91;;;::::0;-1:-1:-1;;;4813:91:16;;9670:2:23;4813:91:16::1;::::0;::::1;9652:21:23::0;9709:2;9689:18;;;9682:30;9748:34;9728:18;;;9721:62;9819:26;9799:18;;;9792:54;9863:19;;4813:91:16::1;9468:420:23::0;4813:91:16::1;4939:1;4923:13;:17;4915:83;;;::::0;-1:-1:-1;;;4915:83:16;;10095:2:23;4915:83:16::1;::::0;::::1;10077:21:23::0;10134:2;10114:18;;;10107:30;10173:34;10153:18;;;10146:62;-1:-1:-1;;;10224:18:23;;;10217:51;10285:19;;4915:83:16::1;9893:417:23::0;4915:83:16::1;-1:-1:-1::0;;;;;5011:19:16;;::::1;;::::0;;;:9:::1;:19;::::0;;;;;;;:26;;5033:4:::1;-1:-1:-1::0;;5011:26:16;;::::1;::::0;::::1;::::0;;;5069:36;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;5048:15:::1;:58:::0;;;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;;5048:58:16::1;::::0;;;::::1;;::::0;;;;;;;;;;;;;;;;;;;5132:23;;5011:19;;5132:23:::1;::::0;::::1;4615:548:::0;;:::o;2118:244:18:-;1210:7;1237:6;-1:-1:-1;;;;;1237:6:18;699:10:17;1384:23:18;1376:68;;;;-1:-1:-1;;;1376:68:18;;;;;;;:::i;:::-;-1:-1:-1;;;;;2207:22:18;::::1;2199:73;;;::::0;-1:-1:-1;;;2199:73:18;;10517:2:23;2199:73:18::1;::::0;::::1;10499:21:23::0;10556:2;10536:18;;;10529:30;10595:34;10575:18;;;10568:62;-1:-1:-1;;;10646:18:23;;;10639:36;10692:19;;2199:73:18::1;10315:402:23::0;2199:73:18::1;2309:6;::::0;;2288:38:::1;::::0;-1:-1:-1;;;;;2288:38:18;;::::1;::::0;2309:6;::::1;::::0;2288:38:::1;::::0;::::1;2337:6;:17:::0;;-1:-1:-1;;;;;;2337:17:18::1;-1:-1:-1::0;;;;;2337:17:18;;;::::1;::::0;;;::::1;::::0;;2118:244::o;9518:438:16:-;-1:-1:-1;;;;;9611:19:16;;9583:7;9611:19;;;:9;:19;;;;;;;;:27;;:19;:27;9603:96;;;;-1:-1:-1;;;9603:96:16;;10924:2:23;9603:96:16;;;10906:21:23;10963:2;10943:18;;;10936:30;11002:34;10982:18;;;10975:62;11073:26;11053:18;;;11046:54;11117:19;;9603:96:16;10722:420:23;9603:96:16;9712:11;;9736:190;9760:15;:22;9756:26;;9736:190;;;9838:8;-1:-1:-1;;;;;9808:38:16;:15;9824:1;9808:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:26;-1:-1:-1;;;;;9808:26:16;:38;9804:111;;9873:1;9867:7;;9894:5;;9804:111;9784:3;;;;:::i;:::-;;;;9736:190;;;-1:-1:-1;9945:3:16;9518:438;-1:-1:-1;;9518:438:16:o;14:173:23:-;82:20;;-1:-1:-1;;;;;131:31:23;;121:42;;111:70;;177:1;174;167:12;192:186;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:23:o;565:873::-;790:2;842:21;;;912:13;;815:18;;;934:22;;;761:4;;790:2;975;;993:18;;;;1034:15;;;761:4;1077:335;1091:6;1088:1;1085:13;1077:335;;;1150:13;;1192:9;;-1:-1:-1;;;;;1188:35:23;1176:48;;1264:11;;;1258:18;1244:12;;;1237:40;1317:11;;1311:18;1297:12;;;1290:40;1359:4;1350:14;;;;1387:15;;;;1220:1;1106:9;1077:335;;;-1:-1:-1;1429:3:23;;565:873;-1:-1:-1;;;;;;;565:873:23:o;1843:180::-;1902:6;1955:2;1943:9;1934:7;1930:23;1926:32;1923:52;;;1971:1;1968;1961:12;1923:52;-1:-1:-1;1994:23:23;;1843:180;-1:-1:-1;1843:180:23:o;2028:254::-;2096:6;2104;2157:2;2145:9;2136:7;2132:23;2128:32;2125:52;;;2173:1;2170;2163:12;2125:52;2196:29;2215:9;2196:29;:::i;:::-;2186:39;2272:2;2257:18;;;;2244:32;;-1:-1:-1;;;2028:254:23:o;2287:127::-;2348:10;2343:3;2339:20;2336:1;2329:31;2379:4;2376:1;2369:15;2403:4;2400:1;2393:15;2419:127;2480:10;2475:3;2471:20;2468:1;2461:31;2511:4;2508:1;2501:15;2535:4;2532:1;2525:15;2551:128;2618:9;;;2639:11;;;2636:37;;;2653:18;;:::i;:::-;2551:128;;;;:::o;2684:217::-;2724:1;2750;2740:132;;2794:10;2789:3;2785:20;2782:1;2775:31;2829:4;2826:1;2819:15;2857:4;2854:1;2847:15;2740:132;-1:-1:-1;2886:9:23;;2684:217::o;2906:168::-;2979:9;;;3010;;3027:15;;;3021:22;;3007:37;2997:71;;3048:18;;:::i;3079:125::-;3144:9;;;3165:10;;;3162:36;;;3178:18;;:::i;3209:356::-;3411:2;3393:21;;;3430:18;;;3423:30;3489:34;3484:2;3469:18;;3462:62;3556:2;3541:18;;3209:356::o;3997:127::-;4058:10;4053:3;4049:20;4046:1;4039:31;4089:4;4086:1;4079:15;4113:4;4110:1;4103:15;5668:277;5735:6;5788:2;5776:9;5767:7;5763:23;5759:32;5756:52;;;5804:1;5801;5794:12;5756:52;5836:9;5830:16;5889:5;5882:13;5875:21;5868:5;5865:32;5855:60;;5911:1;5908;5901:12;7635:184;7705:6;7758:2;7746:9;7737:7;7733:23;7729:32;7726:52;;;7774:1;7771;7764:12;7726:52;-1:-1:-1;7797:16:23;;7635:184;-1:-1:-1;7635:184:23:o;11147:135::-;11186:3;11207:17;;;11204:43;;11227:18;;:::i;:::-;-1:-1:-1;11274:1:23;11263:13;;11147:135::o", + "object": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c806385d4cad3116100ad578063d36862e811610071578063d36862e814610251578063dd46706414610264578063ec20b45714610277578063f02c6d8f1461028a578063f2fde38b1461029357600080fd5b806385d4cad3146101d257806388a772ef146102115780638da5cb5b14610224578063a145f1b514610235578063c7e42b1b1461023e57600080fd5b806350ad827a116100f457806350ad827a1461016d5780635b904cb7146101825780636f7bc9be1461018a578063715018a6146101bd5780637f87bbd6146101c557600080fd5b806308ac7624146101265780630bca8bcd1461013d57806342714978146101505780634e71d92d14610165575b600080fd5b6005545b6040519081526020015b60405180910390f35b61012a61014b366004611501565b6102a6565b61016361015e366004611501565b61041e565b005b6101636106ac565b610175610989565b6040516101349190611523565b610163610a0b565b6101ad610198366004611501565b60076020526000908152604090205460ff1681565b6040519015158152602001610134565b610163610aea565b6004546101ad9060ff1681565b6101f97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610134565b61012a61021f366004611501565b610b5e565b6000546001600160a01b03166101f9565b61012a60055481565b61016361024c366004611501565b610bb9565b61012a61025f366004611501565b610f4b565b610163610272366004611585565b610fa6565b61016361028536600461159e565b61103d565b61012a60035481565b6101636102a1366004611501565b611302565b6001600160a01b03811660009081526007602052604081205460ff1680156102d0575060045460ff165b156104115760006102e0836113ec565b905060006102ed84610b5e565b90508060068381548110610303576103036115c8565b90600052602060002090600302016002015410610324575060009392505050565b60006224ea006003544261033891906115f4565b610342919061160d565b90506000606461035384600861162f565b61035d919061160d565b610367908361162f565b606461037485600c61162f565b61037e919061160d565b6103889190611646565b9050828111806103995750600b8210155b156103d557600684815481106103b1576103b16115c8565b906000526020600020906003020160020154836103ce91906115f4565b9050610408565b600684815481106103e8576103e86115c8565b9060005260206000209060030201600201548161040591906115f4565b90505b95945050505050565b506000919050565b919050565b6000546001600160a01b031633146104515760405162461bcd60e51b815260040161044890611659565b60405180910390fd5b6001600160a01b0381166104cd5760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f7420626520616464726573732830290000000000006064820152608401610448565b60006104d8826113ec565b90506000600682815481106104ef576104ef6115c8565b600091825260209182902060408051606081018252600390930290910180546001600160a01b03168352600180820154948401949094526002015490820152600680549193509161053f916115f4565b8154811061054f5761054f6115c8565b906000526020600020906003020160068381548110610570576105706115c8565b60009182526020909120825460039092020180546001600160a01b0319166001600160a01b039092169190911781556001808301548183015560029283015492909101919091556006805483926105c6916115f4565b815481106105d6576105d66115c8565b600091825260209182902083516003929092020180546001600160a01b0319166001600160a01b03909216919091178155908201516001820155604090910151600290910155600680548061062d5761062d61168e565b6000828152602080822060036000199094019384020180546001600160a01b031916815560018101839055600201829055919092556001600160a01b03851680835260079091526040808320805460ff191690555190917fba0013628ccb89af5bb18edf764d3a7b35c07b894848b8e6fd3434719de39c7d91a2505050565b3360009081526007602052604090205460ff1615156001146107365760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f720000000000006064820152608401610448565b60045460ff1661079c5760405162461bcd60e51b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b6064820152608401610448565b60006107a7336102a6565b9050600081116108165760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b6064820152608401610448565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116a4565b6109065760405162461bcd60e51b815260206004820152602a60248201527f56657374696e672e736f6c3a3a636c61696d2829207472616e7366657220756e6044820152691cdd58d8d95cdcd99d5b60b21b6064820152608401610448565b6000610911336113ec565b90508160068281548110610927576109276115c8565b906000526020600020906003020160020160008282546109479190611646565b909155505060408051338152602081018490527fc9ff33ee3842ec05cab3a4e2b17aa19694b6c461ea543be5752366f912a6539d910160405180910390a15050565b60606006805480602002602001604051908101604052809291908181526020016000905b82821015610a02576000848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016109ad565b50505050905090565b6000546001600160a01b03163314610a355760405162461bcd60e51b815260040161044890611659565b60045460ff1615610aae5760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a656e61626c6556657374696e6728292076657360448201527f74696e6720697320616c726561647920656e61626c65640000000000000000006064820152608401610448565b6004805460ff19166001179055426003556040517ff78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa390600090a1565b6000546001600160a01b03163314610b145760405162461bcd60e51b815260040161044890611659565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03811660009081526007602052604081205460ff1615610411576000610b8a836113ec565b905060068181548110610b9f57610b9f6115c8565b906000526020600020906003020160010154915050919050565b6000546001600160a01b03163314610be35760405162461bcd60e51b815260040161044890611659565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610c8a5760405162461bcd60e51b815260206004820152603960248201527f56657374696e672e736f6c3a3a7769746864726177457263323028292063616e60448201527f6e6f74207769746864726177202450524f564520746f6b656e000000000000006064820152608401610448565b6001600160a01b038116610d065760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920746f6b60448201527f656e2063616e6e6f7420626520616464726573732830290000000000000000006064820152608401610448565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7191906116c6565b905060008111610de95760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920696e7360448201527f756666696369656e7420746f6b656e2062616c616e63650000000000000000006064820152608401610448565b6000826001600160a01b031663a9059cbb610e0c6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d91906116a4565b905080610ee75760405162461bcd60e51b815260206004820152603260248201527f56657374696e672e736f6c3a3a776974686472617745726332302829207472616044820152711b9cd9995c881d5b9cdd58d8d95cdcd99d5b60721b6064820152608401610448565b7f3ff9434501bb42cce78344c3420ec1273f8b404aba16aaae994c0d413b91bb4f8383610f1c6000546001600160a01b031690565b604080516001600160a01b039485168152602081019390935292168183015290519081900360600190a1505050565b6001600160a01b03811660009081526007602052604081205460ff1615610411576000610f77836113ec565b905060068181548110610f8c57610f8c6115c8565b906000526020600020906003020160020154915050919050565b6000546001600160a01b03163314610fd05760405162461bcd60e51b815260040161044890611659565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610fff8142611646565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000546001600160a01b031633146110675760405162461bcd60e51b815260040161044890611659565b6001600160a01b03821660009081526007602052604090205460ff16156110ed5760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b6064820152608401610448565b6001600160a01b0382166111695760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f74206265206164647265737328302900000000000000006064820152608401610448565b600081116111d75760405162461bcd60e51b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b6064820152608401610448565b6001600160a01b0382811660008181526007602090815260408083208054600160ff1990911681179091558151606081018352948552918401868152908401838152600680549384018155845293517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600390930292830180546001600160a01b031916919096161790945592517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4084015590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4190920191909155600580548392906112c5908490611646565b90915550506040516001600160a01b038316907f62e6a5118be03f9bfedb79b0ed7ed75ee4a9e15fc4c69d2c4976acde26fa2d5f90600090a25050565b6000546001600160a01b0316331461132c5760405162461bcd60e51b815260040161044890611659565b6001600160a01b0381166113915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610448565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526007602052604081205460ff16151560011461147f5760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f7200000000000000006064820152608401610448565b6000805b6006548110156114e357836001600160a01b0316600682815481106114aa576114aa6115c8565b60009182526020909120600390910201546001600160a01b0316036114d1578091506114e3565b806114db816116df565b915050611483565b5092915050565b80356001600160a01b038116811461041957600080fd5b60006020828403121561151357600080fd5b61151c826114ea565b9392505050565b602080825282518282018190526000919060409081850190868401855b8281101561157857815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101611540565b5091979650505050505050565b60006020828403121561159757600080fd5b5035919050565b600080604083850312156115b157600080fd5b6115ba836114ea565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115611607576116076115de565b92915050565b60008261162a57634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417611607576116076115de565b80820180821115611607576116076115de565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156116b657600080fd5b8151801515811461151c57600080fd5b6000602082840312156116d857600080fd5b5051919050565b6000600182016116f1576116f16115de565b506001019056fea2646970667358221220d2355449aa619c52df97b3ae1052a171b8fa5fa41104c173bef64d6cc1fd6c1b64736f6c63430008110033", + "sourceMap": "490:10064:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7390:105;7470:17;;7390:105;;;160:25:32;;;148:2;133:18;7390:105:18;;;;;;;;7696:949;;;;;;:::i;:::-;;:::i;5411:529::-;;;;;;:::i;:::-;;:::i;:::-;;3567:699;;;:::i;10440:111::-;;;:::i;:::-;;;;;;;:::i;6108:261::-;;;:::i;1329:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1608:14:32;;1601:22;1583:41;;1571:2;1556:18;1329:41:18;1443:187:32;1815:148:20;;;:::i;777:26:18:-;;;;;;;;;601:35;;;;;;;;-1:-1:-1;;;;;1799:32:32;;;1781:51;;1769:2;1754:18;601:35:18;1635:203:32;9349:286:18;;;;;;:::i;:::-;;:::i;1164:87:20:-;1210:7;1237:6;-1:-1:-1;;;;;1237:6:20;1164:87;;857:32:18;;;;;;6556:636;;;;;;:::i;:::-;;:::i;8846:290::-;;;;;;:::i;:::-;;:::i;2444:226:20:-;;;;;;:::i;:::-;;:::i;4652:595:18:-;;;;;;:::i;:::-;;:::i;684:31::-;;;;;;2118:244:20;;;;;;:::i;:::-;;:::i;7696:949:18:-;-1:-1:-1;;;;;7785:19:18;;7761:7;7785:19;;;:9;:19;;;;;;;;:37;;;;-1:-1:-1;7808:14:18;;;;7785:37;7781:857;;;7841:11;7855:24;7870:8;7855:14;:24::i;:::-;7841:38;;7896:17;7916:25;7932:8;7916:15;:25::i;:::-;7896:45;;8000:12;7962:15;7978:3;7962:20;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;;:50;7958:99;;-1:-1:-1;8040:1:18;;7696:949;-1:-1:-1;;;7696:949:18:o;7958:99::-;8073:17;8133:7;8113:16;;8095:15;:34;;;;:::i;:::-;8094:46;;;;:::i;:::-;8073:68;-1:-1:-1;8157:18:18;8242:3;8223:16;:12;8238:1;8223:16;:::i;:::-;:22;;;;:::i;:::-;8207:39;;:12;:39;:::i;:::-;8199:3;8179:17;:12;8194:2;8179:17;:::i;:::-;:23;;;;:::i;:::-;8178:69;;;;:::i;:::-;8157:90;;8284:12;8268:13;:28;:50;;;;8316:2;8300:12;:18;;8268:50;8264:276;;;8370:15;8386:3;8370:20;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;;8355:12;:49;;;;:::i;:::-;8339:65;;8264:276;;;8490:15;8506:3;8490:20;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;;8474:13;:50;;;;:::i;:::-;8458:66;;8264:276;8563:13;7696:949;-1:-1:-1;;;;;7696:949:18:o;7781:857::-;-1:-1:-1;8625:1:18;;7696:949;-1:-1:-1;7696:949:18:o;7781:857::-;7696:949;;;:::o;5411:529::-;1210:7:20;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5493:22:18;::::1;5485:93;;;::::0;-1:-1:-1;;;5485:93:18;;3772:2:32;5485:93:18::1;::::0;::::1;3754:21:32::0;3811:2;3791:18;;;3784:30;3850:34;3830:18;;;3823:62;3921:28;3901:18;;;3894:56;3967:19;;5485:93:18::1;3570:422:32::0;5485:93:18::1;5591:11;5605:24;5620:8;5605:14;:24::i;:::-;5591:38;;5642:20;5665:15;5681:3;5665:20;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;5642:43:::1;::::0;;::::1;::::0;::::1;::::0;;5665:20:::1;::::0;;::::1;::::0;;::::1;5642:43:::0;;-1:-1:-1;;;;;5642:43:18::1;::::0;;;;;::::1;::::0;;;::::1;::::0;;;;::::1;;::::0;;;;;5719:15:::1;5735:22:::0;;5642:43;;-1:-1:-1;5719:15:18;5735:24:::1;::::0;::::1;:::i;:::-;5719:41;;;;;;;;:::i;:::-;;;;;;;;;;;5696:15;5712:3;5696:20;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:64;;:20:::1;::::0;;::::1;;:64:::0;;-1:-1:-1;;;;;;5696:64:18::1;-1:-1:-1::0;;;;;5696:64:18;;::::1;::::0;;;::::1;::::0;;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;5771:15:::1;5787:22:::0;;5815:4;;5787:24:::1;::::0;::::1;:::i;:::-;5771:41;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;:48;;:41:::1;::::0;;;::::1;;:48:::0;;-1:-1:-1;;;;;;5771:48:18::1;-1:-1:-1::0;;;;;5771:48:18;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;-1:-1:-1;5771:48:18;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;5830:15:::1;:21:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;5830:21:18;;;;;::::1;;::::0;;-1:-1:-1;;;;;;5830:21:18::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;;;;;;-1:-1:-1;;;;;5862:19:18;::::1;::::0;;;:9:::1;:19:::0;;;;;;;:27;;-1:-1:-1;;5862:27:18::1;::::0;;5907:25;5862:19;;5907:25:::1;::::0;::::1;5474:466;;5411:529:::0;:::o;3567:699::-;2070:10;2060:21;;;;:9;:21;;;;;;;;:29;;:21;:29;2052:100;;;;-1:-1:-1;;;2052:100:18;;4331:2:32;2052:100:18;;;4313:21:32;4370:2;4350:18;;;4343:30;4409:34;4389:18;;;4382:62;4480:28;4460:18;;;4453:56;4526:19;;2052:100:18;4129:422:32;2052:100:18;3627:14:::1;::::0;::::1;;3619:70;;;::::0;-1:-1:-1;;;3619:70:18;;4758:2:32;3619:70:18::1;::::0;::::1;4740:21:32::0;4797:2;4777:18;;;4770:30;4836:34;4816:18;;;4809:62;-1:-1:-1;;;4887:18:32;;;4880:41;4938:19;;3619:70:18::1;4556:407:32::0;3619:70:18::1;3700:21;3724:28;3741:10;3724:16;:28::i;:::-;3700:52;;3787:1;3771:13;:17;3763:82;;;::::0;-1:-1:-1;;;3763:82:18;;5170:2:32;3763:82:18::1;::::0;::::1;5152:21:32::0;5209:2;5189:18;;;5182:30;5248:34;5228:18;;;5221:62;-1:-1:-1;;;5299:18:32;;;5292:50;5359:19;;3763:82:18::1;4968:416:32::0;3763:82:18::1;3898:54;::::0;-1:-1:-1;;;3898:54:18;;3926:10:::1;3898:54;::::0;::::1;5563:51:32::0;5630:18;;;5623:34;;;3905:10:18::1;-1:-1:-1::0;;;;;3898:27:18::1;::::0;::::1;::::0;5536:18:32;;3898:54:18::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3890:109;;;::::0;-1:-1:-1;;;3890:109:18;;6152:2:32;3890:109:18::1;::::0;::::1;6134:21:32::0;6191:2;6171:18;;;6164:30;6230:34;6210:18;;;6203:62;-1:-1:-1;;;6281:18:32;;;6274:40;6331:19;;3890:109:18::1;5950:406:32::0;3890:109:18::1;4055:11;4069:26;4084:10;4069:14;:26::i;:::-;4055:40;;4188:13;4150:15;4166:3;4150:20;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;;:51;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;4219:39:18::1;::::0;;4232:10:::1;5563:51:32::0;;5645:2;5630:18;;5623:34;;;4219:39:18::1;::::0;5536:18:32;4219:39:18::1;;;;;;;3608:658;;3567:699::o:0;10440:111::-;10491:17;10528:15;10521:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10521:22:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10440:111;:::o;6108:261::-;1210:7:20;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;6174:14:18::1;::::0;::::1;;6173:15;6165:83;;;::::0;-1:-1:-1;;;6165:83:18;;6563:2:32;6165:83:18::1;::::0;::::1;6545:21:32::0;6602:2;6582:18;;;6575:30;6641:34;6621:18;;;6614:62;6712:25;6692:18;;;6685:53;6755:19;;6165:83:18::1;6361:419:32::0;6165:83:18::1;6261:14;:21:::0;;-1:-1:-1;;6261:21:18::1;6278:4;6261:21;::::0;;6312:15:::1;6293:16;:34:::0;6345:16:::1;::::0;::::1;::::0;6261:14:::1;::::0;6345:16:::1;6108:261::o:0;1815:148:20:-;1210:7;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;1922:1:::1;1906:6:::0;;1885:40:::1;::::0;-1:-1:-1;;;;;1906:6:20;;::::1;::::0;1885:40:::1;::::0;1922:1;;1885:40:::1;1953:1;1936:19:::0;;-1:-1:-1;;;;;;1936:19:20::1;::::0;;1815:148::o;9349:286:18:-;-1:-1:-1;;;;;9437:19:18;;9413:7;9437:19;;;:9;:19;;;;;;;;9433:195;;;9473:11;9487:24;9502:8;9487:14;:24::i;:::-;9473:38;;9533:15;9549:3;9533:20;;;;;;;;:::i;:::-;;;;;;;;;;;:33;;;9526:40;;;9349:286;;;:::o;6556:636::-;1210:7:20;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;6643:10:18::1;-1:-1:-1::0;;;;;6634:19:18::1;:5;-1:-1:-1::0;;;;;6634:19:18::1;::::0;6626:89:::1;;;::::0;-1:-1:-1;;;6626:89:18;;6987:2:32;6626:89:18::1;::::0;::::1;6969:21:32::0;7026:2;7006:18;;;6999:30;7065:34;7045:18;;;7038:62;7136:27;7116:18;;;7109:55;7181:19;;6626:89:18::1;6785:421:32::0;6626:89:18::1;-1:-1:-1::0;;;;;6734:19:18;::::1;6726:87;;;::::0;-1:-1:-1;;;6726:87:18;;7413:2:32;6726:87:18::1;::::0;::::1;7395:21:32::0;7452:2;7432:18;;;7425:30;7491:34;7471:18;;;7464:62;7562:25;7542:18;;;7535:53;7605:19;;6726:87:18::1;7211:419:32::0;6726:87:18::1;6844:38;::::0;-1:-1:-1;;;6844:38:18;;6876:4:::1;6844:38;::::0;::::1;1781:51:32::0;6826:15:18::1;::::0;-1:-1:-1;;;;;6844:23:18;::::1;::::0;::::1;::::0;1754:18:32;;6844:38:18::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6826:56;;6911:1;6901:7;:11;6893:79;;;::::0;-1:-1:-1;;;6893:79:18;;8026:2:32;6893:79:18::1;::::0;::::1;8008:21:32::0;8065:2;8045:18;;;8038:30;8104:34;8084:18;;;8077:62;8175:25;8155:18;;;8148:53;8218:19;;6893:79:18::1;7824:419:32::0;6893:79:18::1;6985:12;7007:5;-1:-1:-1::0;;;;;7000:22:18::1;;7023:7;1210::20::0;1237:6;-1:-1:-1;;;;;1237:6:20;;1164:87;7023:7:18::1;7000:40;::::0;-1:-1:-1;;;;;;7000:40:18::1;::::0;;;;;;-1:-1:-1;;;;;5581:32:32;;;7000:40:18::1;::::0;::::1;5563:51:32::0;5630:18;;;5623:34;;;5536:18;;7000:40:18::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6985:55;;7059:7;7051:70;;;::::0;-1:-1:-1;;;7051:70:18;;8450:2:32;7051:70:18::1;::::0;::::1;8432:21:32::0;8489:2;8469:18;;;8462:30;8528:34;8508:18;;;8501:62;-1:-1:-1;;;8579:18:32;;;8572:48;8637:19;;7051:70:18::1;8248:414:32::0;7051:70:18::1;7139:45;7160:5;7167:7;7176;1210::20::0;1237:6;-1:-1:-1;;;;;1237:6:20;;1164:87;7176:7:18::1;7139:45;::::0;;-1:-1:-1;;;;;8925:15:32;;;8907:34;;8972:2;8957:18;;8950:34;;;;9020:15;;9000:18;;;8993:43;7139:45:18;;;;;;8857:2:32;7139:45:18;;::::1;6615:577;;6556:636:::0;:::o;8846:290::-;-1:-1:-1;;;;;8935:19:18;;8911:7;8935:19;;;:9;:19;;;;;;;;8931:198;;;8973:11;8987:24;9002:8;8987:14;:24::i;:::-;8973:38;;9033:15;9049:3;9033:20;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;;9026:41;;;8846:290;;;:::o;2444:226:20:-;1210:7;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;2525:6:::1;::::0;;;2508:23;;-1:-1:-1;;;;;;2508:23:20;;::::1;-1:-1:-1::0;;;;;2525:6:20;::::1;2508:23;::::0;;;2542:19:::1;::::0;;2584:22:::1;2602:4:::0;2584:15:::1;:22;:::i;:::-;2572:9;:34:::0;2659:1:::1;2643:6:::0;;2622:40:::1;::::0;-1:-1:-1;;;;;2643:6:20;;::::1;::::0;2622:40:::1;::::0;2659:1;;2622:40:::1;2444:226:::0;:::o;4652:595:18:-;1210:7:20;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;-1:-1:-1;;;;;4754:19:18;::::1;;::::0;;;:9:::1;:19;::::0;;;;;::::1;;:28;4746:93;;;::::0;-1:-1:-1;;;4746:93:18;;9249:2:32;4746:93:18::1;::::0;::::1;9231:21:32::0;9288:2;9268:18;;;9261:30;9327:34;9307:18;;;9300:62;-1:-1:-1;;;9378:18:32;;;9371:50;9438:19;;4746:93:18::1;9047:416:32::0;4746:93:18::1;-1:-1:-1::0;;;;;4858:22:18;::::1;4850:91;;;::::0;-1:-1:-1;;;4850:91:18;;9670:2:32;4850:91:18::1;::::0;::::1;9652:21:32::0;9709:2;9689:18;;;9682:30;9748:34;9728:18;;;9721:62;9819:26;9799:18;;;9792:54;9863:19;;4850:91:18::1;9468:420:32::0;4850:91:18::1;4976:1;4960:13;:17;4952:83;;;::::0;-1:-1:-1;;;4952:83:18;;10095:2:32;4952:83:18::1;::::0;::::1;10077:21:32::0;10134:2;10114:18;;;10107:30;10173:34;10153:18;;;10146:62;-1:-1:-1;;;10224:18:32;;;10217:51;10285:19;;4952:83:18::1;9893:417:32::0;4952:83:18::1;-1:-1:-1::0;;;;;5048:19:18;;::::1;;::::0;;;:9:::1;:19;::::0;;;;;;;:26;;5070:4:::1;-1:-1:-1::0;;5048:26:18;;::::1;::::0;::::1;::::0;;;5106:36;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;5085:15:::1;:58:::0;;;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;;5085:58:18::1;::::0;;;::::1;;::::0;;;;;;;;;;;;;;;;;;;5156:17:::1;:34:::0;;5106:36;;5048:19;5156:34:::1;::::0;5106:36;;5156:34:::1;:::i;:::-;::::0;;;-1:-1:-1;;5216:23:18::1;::::0;-1:-1:-1;;;;;5216:23:18;::::1;::::0;::::1;::::0;;;::::1;4652:595:::0;;:::o;2118:244:20:-;1210:7;1237:6;-1:-1:-1;;;;;1237:6:20;699:10:19;1384:23:20;1376:68;;;;-1:-1:-1;;;1376:68:20;;;;;;;:::i;:::-;-1:-1:-1;;;;;2207:22:20;::::1;2199:73;;;::::0;-1:-1:-1;;;2199:73:20;;10517:2:32;2199:73:20::1;::::0;::::1;10499:21:32::0;10556:2;10536:18;;;10529:30;10595:34;10575:18;;;10568:62;-1:-1:-1;;;10646:18:32;;;10639:36;10692:19;;2199:73:20::1;10315:402:32::0;2199:73:20::1;2309:6;::::0;;2288:38:::1;::::0;-1:-1:-1;;;;;2288:38:20;;::::1;::::0;2309:6;::::1;::::0;2288:38:::1;::::0;::::1;2337:6;:17:::0;;-1:-1:-1;;;;;;2337:17:20::1;-1:-1:-1::0;;;;;2337:17:20;;;::::1;::::0;;;::::1;::::0;;2118:244::o;9862:438:18:-;-1:-1:-1;;;;;9955:19:18;;9927:7;9955:19;;;:9;:19;;;;;;;;:27;;:19;:27;9947:96;;;;-1:-1:-1;;;9947:96:18;;10924:2:32;9947:96:18;;;10906:21:32;10963:2;10943:18;;;10936:30;11002:34;10982:18;;;10975:62;11073:26;11053:18;;;11046:54;11117:19;;9947:96:18;10722:420:32;9947:96:18;10056:11;;10080:190;10104:15;:22;10100:26;;10080:190;;;10182:8;-1:-1:-1;;;;;10152:38:18;:15;10168:1;10152:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:26;-1:-1:-1;;;;;10152:26:18;:38;10148:111;;10217:1;10211:7;;10238:5;;10148:111;10128:3;;;;:::i;:::-;;;;10080:190;;;-1:-1:-1;10289:3:18;9862:438;-1:-1:-1;;9862:438:18:o;196:173:32:-;264:20;;-1:-1:-1;;;;;313:31:32;;303:42;;293:70;;359:1;356;349:12;374:186;433:6;486:2;474:9;465:7;461:23;457:32;454:52;;;502:1;499;492:12;454:52;525:29;544:9;525:29;:::i;:::-;515:39;374:186;-1:-1:-1;;;374:186:32:o;565:873::-;790:2;842:21;;;912:13;;815:18;;;934:22;;;761:4;;790:2;975;;993:18;;;;1034:15;;;761:4;1077:335;1091:6;1088:1;1085:13;1077:335;;;1150:13;;1192:9;;-1:-1:-1;;;;;1188:35:32;1176:48;;1264:11;;;1258:18;1244:12;;;1237:40;1317:11;;1311:18;1297:12;;;1290:40;1359:4;1350:14;;;;1387:15;;;;1220:1;1106:9;1077:335;;;-1:-1:-1;1429:3:32;;565:873;-1:-1:-1;;;;;;;565:873:32:o;1843:180::-;1902:6;1955:2;1943:9;1934:7;1930:23;1926:32;1923:52;;;1971:1;1968;1961:12;1923:52;-1:-1:-1;1994:23:32;;1843:180;-1:-1:-1;1843:180:32:o;2028:254::-;2096:6;2104;2157:2;2145:9;2136:7;2132:23;2128:32;2125:52;;;2173:1;2170;2163:12;2125:52;2196:29;2215:9;2196:29;:::i;:::-;2186:39;2272:2;2257:18;;;;2244:32;;-1:-1:-1;;;2028:254:32:o;2287:127::-;2348:10;2343:3;2339:20;2336:1;2329:31;2379:4;2376:1;2369:15;2403:4;2400:1;2393:15;2419:127;2480:10;2475:3;2471:20;2468:1;2461:31;2511:4;2508:1;2501:15;2535:4;2532:1;2525:15;2551:128;2618:9;;;2639:11;;;2636:37;;;2653:18;;:::i;:::-;2551:128;;;;:::o;2684:217::-;2724:1;2750;2740:132;;2794:10;2789:3;2785:20;2782:1;2775:31;2829:4;2826:1;2819:15;2857:4;2854:1;2847:15;2740:132;-1:-1:-1;2886:9:32;;2684:217::o;2906:168::-;2979:9;;;3010;;3027:15;;;3021:22;;3007:37;2997:71;;3048:18;;:::i;3079:125::-;3144:9;;;3165:10;;;3162:36;;;3178:18;;:::i;3209:356::-;3411:2;3393:21;;;3430:18;;;3423:30;3489:34;3484:2;3469:18;;3462:62;3556:2;3541:18;;3209:356::o;3997:127::-;4058:10;4053:3;4049:20;4046:1;4039:31;4089:4;4086:1;4079:15;4113:4;4110:1;4103:15;5668:277;5735:6;5788:2;5776:9;5767:7;5763:23;5759:32;5756:52;;;5804:1;5801;5794:12;5756:52;5836:9;5830:16;5889:5;5882:13;5875:21;5868:5;5865:32;5855:60;;5911:1;5908;5901:12;7635:184;7705:6;7758:2;7746:9;7737:7;7733:23;7729:32;7726:52;;;7774:1;7771;7764:12;7726:52;-1:-1:-1;7797:16:32;;7635:184;-1:-1:-1;7635:184:32:o;11147:135::-;11186:3;11207:17;;;11204:43;;11227:18;;:::i;:::-;-1:-1:-1;11274:1:32;11263:13;;11147:135::o", "linkReferences": {}, "immutableReferences": { - "25541": [ + "27505": [ { - "start": 445, + "start": 471, "length": 32 }, { - "start": 2063, + "start": 2098, "length": 32 }, { - "start": 3010, + "start": 3045, "length": 32 } ] @@ -391,6 +417,7 @@ "addInvestor(address,uint256)": "ec20b457", "claim()": "4e71d92d", "enableVesting()": "5b904cb7", + "getAllVestedTokens()": "08ac7624", "getAmountClaimed(address)": "d36862e8", "getAmountToClaim(address)": "0bca8bcd", "getInvestorLibrary()": "50ad827a", @@ -401,12 +428,13 @@ "proveToken()": "85d4cad3", "removeInvestor(address)": "42714978", "renounceOwnership()": "715018a6", + "totalTokensToVest()": "a145f1b5", "transferOwnership(address)": "f2fde38b", "vestingEnabled()": "7f87bbd6", "vestingStartUnix()": "f02c6d8f", "withdrawErc20(address)": "c7e42b1b" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_proveToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Erc20TokensWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"InvestorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"InvestorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountClaimed\",\"type\":\"uint256\"}],\"name\":\"ProveClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"VestingEnabled\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokensToVest\",\"type\":\"uint256\"}],\"name\":\"addInvestor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableVesting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"getAmountClaimed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"getAmountToClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInvestorLibrary\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokensToVest\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensClaimed\",\"type\":\"uint256\"}],\"internalType\":\"struct Vesting.Investor[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"getTokensToVest\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"investors\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"lock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeInvestor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vestingEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vestingStartUnix\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"withdrawErc20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Erc20TokensWithdrawn(address,uint256,address)\":{\"params\":{\"amount\":\"tokens withdrawn.\",\"receiver\":\"address of msg.sender.\",\"token\":\"address of Erc20 token.\"}},\"InvestorAdded(address)\":{\"params\":{\"account\":\"is the wallet address of investor that was added to the investorLibrary.\"}},\"InvestorRemoved(address)\":{\"params\":{\"account\":\"is the wallet address of investor that was added to the investorLibrary.\"}},\"ProveClaimed(address,uint256)\":{\"params\":{\"account\":\"is the wallet address of msg.sender.\",\"amountClaimed\":\"is the amount of tokens the account claimed.\"}}},\"kind\":\"dev\",\"methods\":{\"addInvestor(address,uint256)\":{\"params\":{\"_account\":\"the wallet address of investor being added.\",\"_tokensToVest\":\"the amount of $PROVE that is being vested for that investor.\"}},\"claim()\":{\"details\":\"msg.sender must be the investor address\"},\"enableVesting()\":{\"details\":\"will set start time to vestingStartUnix. will set vestingEnabled to true.\"},\"getAmountClaimed(address)\":{\"params\":{\"_account\":\"address of investor.\"},\"returns\":{\"_0\":\"uint256 amount of tokens claimed by account.\"}},\"getAmountToClaim(address)\":{\"params\":{\"_account\":\"address of investor.\"},\"returns\":{\"_0\":\"uint256 amount of tokens to claim.\"}},\"getInvestorLibrary()\":{\"returns\":{\"_0\":\"Investor[] memory the array of investor structs \"}},\"getTokensToVest(address)\":{\"params\":{\"_account\":\"address of investor\"},\"returns\":{\"_0\":\"uint256 investor's tokensToVest\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeInvestor(address)\":{\"params\":{\"_account\":\"the wallet address of investor that is being removed.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"withdrawErc20(address)\":{\"details\":\"token address cannot be $PROVE\",\"params\":{\"token\":\"contract address of token we wish to remove.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Erc20TokensWithdrawn(address,uint256,address)\":{\"notice\":\"This event is emitted when withdrawErc20() is executed.\"},\"InvestorAdded(address)\":{\"notice\":\"This event is emitted when addInvestor() is successfully executed.\"},\"InvestorRemoved(address)\":{\"notice\":\"This event is emitted when removeInvestor() is successfully executed.\"},\"ProveClaimed(address,uint256)\":{\"notice\":\"This event is emitted when claim() is successfully executed.\"},\"VestingEnabled()\":{\"notice\":\"This event is emitted when enableVesting() is executed. Should only be executed once.\"}},\"kind\":\"user\",\"methods\":{\"addInvestor(address,uint256)\":{\"notice\":\"This function sets an address as true in the investors mapping and also pushes a new investor element to the Investor array.\"},\"claim()\":{\"notice\":\"Used to claim vested tokens.\"},\"constructor\":{\"notice\":\"Mapping to track investor addresses.\"},\"enableVesting()\":{\"notice\":\"This function starts the vesting period.\"},\"getAmountClaimed(address)\":{\"notice\":\"This function returns the amount of tokens an investor HAS claimed.\"},\"getAmountToClaim(address)\":{\"notice\":\"This function returns the amount of tokens to claim for a specified investor.\"},\"getInvestorLibrary()\":{\"notice\":\"This function returns the investor library array\"},\"getTokensToVest(address)\":{\"notice\":\"This function returns an investors tokensToVest (amount of $PROVE allocated to that investor)\"},\"removeInvestor(address)\":{\"notice\":\"This function removes an investor from the investorLibrary.\"},\"vestingEnabled()\":{\"notice\":\"block timestamp of when vesting has begun\"},\"vestingStartUnix()\":{\"notice\":\"The vested token address.\"},\"withdrawErc20(address)\":{\"notice\":\"Is used to remove ERC20 tokens from the contract.\"}},\"notice\":\"This contract will hold $PROVE tokens in escrow This contract will facilitate the private sale investor vesting tokens This contract will follow a strict vesting schedule This contract will follow a claim model\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Vesting.sol\":\"Vesting\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/Vesting.sol\":{\"keccak256\":\"0x9bbba0177c1e6e33919153caf168a978cea4140158713283ddf39e8f9efd5b4a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2b3e9f85c2c9b104be07aed03ae1f719d3a6712a8447fc37e1efd73e3c07dcd8\",\"dweb:/ipfs/QmewoBQ8Uu8VRfVFuizmPYgsWNKFfaQQqaSDjMMNhNJzaC\"]},\"src/extensions/Context.sol\":{\"keccak256\":\"0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12\",\"dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV\"]},\"src/extensions/Ownable.sol\":{\"keccak256\":\"0xbe3f4ae2a873ee339e0ac54107262ee789604570a463549fd43364289769207f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca9dde5e484d808440ff8ac43892b8f59a2b76d5084efce1dfa904d800c0f9c6\",\"dweb:/ipfs/QmRnQ2x3a9GwVKf7wbRhNY1MwdxyoTkvDtLFqjXxhEoALA\"]},\"src/interfaces/Interfaces.sol\":{\"keccak256\":\"0x741b318f522ba8451f4a2e40afcf59e995484318fabe7c57adeba3124bbd7e04\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dba0a37a10519080f892d5c8b87a0ec026ef73492195a901e49f74766b5915f7\",\"dweb:/ipfs/QmduauRea8YdqJaMeHiYH2tRtbydoqgVirSaTzbXMoEjYX\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_proveToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Erc20TokensWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"InvestorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"InvestorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountClaimed\",\"type\":\"uint256\"}],\"name\":\"ProveClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"VestingEnabled\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokensToVest\",\"type\":\"uint256\"}],\"name\":\"addInvestor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableVesting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllVestedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"getAmountClaimed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"getAmountToClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInvestorLibrary\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokensToVest\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensClaimed\",\"type\":\"uint256\"}],\"internalType\":\"struct Vesting.Investor[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"getTokensToVest\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"investors\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"lock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proveToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeInvestor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalTokensToVest\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vestingEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vestingStartUnix\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"withdrawErc20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Erc20TokensWithdrawn(address,uint256,address)\":{\"params\":{\"amount\":\"tokens withdrawn.\",\"receiver\":\"address of msg.sender.\",\"token\":\"address of Erc20 token.\"}},\"InvestorAdded(address)\":{\"params\":{\"account\":\"is the wallet address of investor that was added to the investorLibrary.\"}},\"InvestorRemoved(address)\":{\"params\":{\"account\":\"is the wallet address of investor that was added to the investorLibrary.\"}},\"ProveClaimed(address,uint256)\":{\"params\":{\"account\":\"is the wallet address of msg.sender.\",\"amountClaimed\":\"is the amount of tokens the account claimed.\"}}},\"kind\":\"dev\",\"methods\":{\"addInvestor(address,uint256)\":{\"params\":{\"_account\":\"the wallet address of investor being added.\",\"_tokensToVest\":\"the amount of $PROVE that is being vested for that investor.\"}},\"claim()\":{\"details\":\"msg.sender must be the investor address\"},\"enableVesting()\":{\"details\":\"will set start time to vestingStartUnix. will set vestingEnabled to true.\"},\"getAllVestedTokens()\":{\"returns\":{\"_0\":\"uint256 total amount of tokens to vest.\"}},\"getAmountClaimed(address)\":{\"params\":{\"_account\":\"address of investor.\"},\"returns\":{\"_0\":\"uint256 amount of tokens claimed by account.\"}},\"getAmountToClaim(address)\":{\"params\":{\"_account\":\"address of investor.\"},\"returns\":{\"_0\":\"uint256 amount of tokens to claim.\"}},\"getInvestorLibrary()\":{\"returns\":{\"_0\":\"Investor[] memory the array of investor structs \"}},\"getTokensToVest(address)\":{\"params\":{\"_account\":\"address of investor\"},\"returns\":{\"_0\":\"uint256 investor's tokensToVest\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeInvestor(address)\":{\"params\":{\"_account\":\"the wallet address of investor that is being removed.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"withdrawErc20(address)\":{\"details\":\"token address cannot be $PROVE\",\"params\":{\"token\":\"contract address of token we wish to remove.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Erc20TokensWithdrawn(address,uint256,address)\":{\"notice\":\"This event is emitted when withdrawErc20() is executed.\"},\"InvestorAdded(address)\":{\"notice\":\"This event is emitted when addInvestor() is successfully executed.\"},\"InvestorRemoved(address)\":{\"notice\":\"This event is emitted when removeInvestor() is successfully executed.\"},\"ProveClaimed(address,uint256)\":{\"notice\":\"This event is emitted when claim() is successfully executed.\"},\"VestingEnabled()\":{\"notice\":\"This event is emitted when enableVesting() is executed. Should only be executed once.\"}},\"kind\":\"user\",\"methods\":{\"addInvestor(address,uint256)\":{\"notice\":\"This function sets an address as true in the investors mapping and also pushes a new investor element to the Investor array.\"},\"claim()\":{\"notice\":\"Used to claim vested tokens.\"},\"constructor\":{\"notice\":\"Mapping to track investor addresses.\"},\"enableVesting()\":{\"notice\":\"This function starts the vesting period.\"},\"getAllVestedTokens()\":{\"notice\":\"This function returns the amount of total tokens this contract will vest\"},\"getAmountClaimed(address)\":{\"notice\":\"This function returns the amount of tokens an investor HAS claimed.\"},\"getAmountToClaim(address)\":{\"notice\":\"This function returns the amount of tokens to claim for a specified investor.\"},\"getInvestorLibrary()\":{\"notice\":\"This function returns the investor library array\"},\"getTokensToVest(address)\":{\"notice\":\"This function returns an investors tokensToVest (amount of $PROVE allocated to that investor)\"},\"removeInvestor(address)\":{\"notice\":\"This function removes an investor from the investorLibrary.\"},\"totalTokensToVest()\":{\"notice\":\"vesting enabled when true.\"},\"vestingEnabled()\":{\"notice\":\"block timestamp of when vesting has begun\"},\"vestingStartUnix()\":{\"notice\":\"The vested token address.\"},\"withdrawErc20(address)\":{\"notice\":\"Is used to remove ERC20 tokens from the contract.\"}},\"notice\":\"This contract will hold $PROVE tokens in escrow This contract will facilitate the private sale investor vesting tokens This contract will follow a strict vesting schedule This contract will follow a claim model\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Vesting.sol\":\"Vesting\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/Vesting.sol\":{\"keccak256\":\"0x3fb59f7d29ccc67ec5aa7b9c064b73734c50c7a68a5f4cac138df7922dfc3356\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0fc8b6e747264c821ede1849cc1c257d97de3006a78b5de396a3837d81377907\",\"dweb:/ipfs/QmU4HUzVvgQGUSS2vknorfoLMvfqvz1F5Whr4mW9x46w7w\"]},\"src/extensions/Context.sol\":{\"keccak256\":\"0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12\",\"dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV\"]},\"src/extensions/Ownable.sol\":{\"keccak256\":\"0xbe3f4ae2a873ee339e0ac54107262ee789604570a463549fd43364289769207f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca9dde5e484d808440ff8ac43892b8f59a2b76d5084efce1dfa904d800c0f9c6\",\"dweb:/ipfs/QmRnQ2x3a9GwVKf7wbRhNY1MwdxyoTkvDtLFqjXxhEoALA\"]},\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be\",\"dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.17+commit.8df45f5f" @@ -554,6 +582,19 @@ "type": "function", "name": "enableVesting" }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getAllVestedTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, { "inputs": [ { @@ -716,6 +757,19 @@ "type": "function", "name": "renounceOwnership" }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalTokensToVest", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, { "inputs": [ { @@ -782,6 +836,11 @@ "enableVesting()": { "details": "will set start time to vestingStartUnix. will set vestingEnabled to true." }, + "getAllVestedTokens()": { + "returns": { + "_0": "uint256 total amount of tokens to vest." + } + }, "getAmountClaimed(address)": { "params": { "_account": "address of investor." @@ -849,6 +908,9 @@ "enableVesting()": { "notice": "This function starts the vesting period." }, + "getAllVestedTokens()": { + "notice": "This function returns the amount of total tokens this contract will vest" + }, "getAmountClaimed(address)": { "notice": "This function returns the amount of tokens an investor HAS claimed." }, @@ -864,6 +926,9 @@ "removeInvestor(address)": { "notice": "This function removes an investor from the investorLibrary." }, + "totalTokensToVest()": { + "notice": "vesting enabled when true." + }, "vestingEnabled()": { "notice": "block timestamp of when vesting has begun" }, @@ -896,10 +961,10 @@ }, "sources": { "src/Vesting.sol": { - "keccak256": "0x9bbba0177c1e6e33919153caf168a978cea4140158713283ddf39e8f9efd5b4a", + "keccak256": "0x3fb59f7d29ccc67ec5aa7b9c064b73734c50c7a68a5f4cac138df7922dfc3356", "urls": [ - "bzz-raw://2b3e9f85c2c9b104be07aed03ae1f719d3a6712a8447fc37e1efd73e3c07dcd8", - "dweb:/ipfs/QmewoBQ8Uu8VRfVFuizmPYgsWNKFfaQQqaSDjMMNhNJzaC" + "bzz-raw://0fc8b6e747264c821ede1849cc1c257d97de3006a78b5de396a3837d81377907", + "dweb:/ipfs/QmU4HUzVvgQGUSS2vknorfoLMvfqvz1F5Whr4mW9x46w7w" ], "license": "UNLICENSED" }, @@ -919,11 +984,11 @@ ], "license": "MIT" }, - "src/interfaces/Interfaces.sol": { - "keccak256": "0x741b318f522ba8451f4a2e40afcf59e995484318fabe7c57adeba3124bbd7e04", + "src/interfaces/IERC20.sol": { + "keccak256": "0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f", "urls": [ - "bzz-raw://dba0a37a10519080f892d5c8b87a0ec026ef73492195a901e49f74766b5915f7", - "dweb:/ipfs/QmduauRea8YdqJaMeHiYH2tRtbydoqgVirSaTzbXMoEjYX" + "bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be", + "dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA" ], "license": "GPL-3.0-or-later" } @@ -932,28 +997,28 @@ }, "ast": { "absolutePath": "src/Vesting.sol", - "id": 26118, + "id": 28097, "exportedSymbols": { "Context": [ - 26143 + 28122 ], "IERC20": [ - 26425 + 29158 ], "Ownable": [ - 26291 + 28270 ], "Vesting": [ - 26117 + 28096 ] }, "nodeType": "SourceUnit", - "src": "40:10172:16", + "src": "40:10516:18", "nodes": [ { - "id": 25533, + "id": 27497, "nodeType": "PragmaDirective", - "src": "40:24:16", + "src": "40:24:18", "nodes": [], "literals": [ "solidity", @@ -963,37 +1028,37 @@ ] }, { - "id": 25534, + "id": 27498, "nodeType": "ImportDirective", - "src": "68:34:16", + "src": "68:34:18", "nodes": [], "absolutePath": "src/extensions/Ownable.sol", "file": "./extensions/Ownable.sol", "nameLocation": "-1:-1:-1", - "scope": 26118, - "sourceUnit": 26292, + "scope": 28097, + "sourceUnit": 28271, "symbolAliases": [], "unitAlias": "" }, { - "id": 25536, + "id": 27500, "nodeType": "ImportDirective", - "src": "104:51:16", + "src": "104:47:18", "nodes": [], - "absolutePath": "src/interfaces/Interfaces.sol", - "file": "./interfaces/Interfaces.sol", + "absolutePath": "src/interfaces/IERC20.sol", + "file": "./interfaces/IERC20.sol", "nameLocation": "-1:-1:-1", - "scope": 26118, - "sourceUnit": 27207, + "scope": 28097, + "sourceUnit": 29167, "symbolAliases": [ { "foreign": { - "id": 25535, + "id": 27499, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "112:6:16", + "referencedDeclaration": 29158, + "src": "112:6:18", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1002,21 +1067,21 @@ "unitAlias": "" }, { - "id": 26117, + "id": 28096, "nodeType": "ContractDefinition", - "src": "494:9716:16", + "src": "490:10064:18", "nodes": [ { - "id": 25541, + "id": 27505, "nodeType": "VariableDeclaration", - "src": "605:35:16", + "src": "601:35:18", "nodes": [], "constant": false, "functionSelector": "85d4cad3", "mutability": "immutable", "name": "proveToken", - "nameLocation": "630:10:16", - "scope": 26117, + "nameLocation": "626:10:18", + "scope": 28096, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1024,10 +1089,10 @@ "typeString": "address" }, "typeName": { - "id": 25540, + "id": 27504, "name": "address", "nodeType": "ElementaryTypeName", - "src": "605:7:16", + "src": "601:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1037,22 +1102,22 @@ "visibility": "public" }, { - "id": 25544, + "id": 27508, "nodeType": "VariableDeclaration", - "src": "688:31:16", + "src": "684:31:18", "nodes": [], "constant": false, "documentation": { - "id": 25542, + "id": 27506, "nodeType": "StructuredDocumentation", - "src": "643:39:16", + "src": "639:39:18", "text": "@notice The vested token address." }, "functionSelector": "f02c6d8f", "mutability": "mutable", "name": "vestingStartUnix", - "nameLocation": "703:16:16", - "scope": 26117, + "nameLocation": "699:16:18", + "scope": 28096, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1060,10 +1125,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25543, + "id": 27507, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "688:7:16", + "src": "684:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1072,22 +1137,22 @@ "visibility": "public" }, { - "id": 25547, + "id": 27511, "nodeType": "VariableDeclaration", - "src": "781:26:16", + "src": "777:26:18", "nodes": [], "constant": false, "documentation": { - "id": 25545, + "id": 27509, "nodeType": "StructuredDocumentation", - "src": "722:53:16", + "src": "718:53:18", "text": "@notice block timestamp of when vesting has begun" }, "functionSelector": "7f87bbd6", "mutability": "mutable", "name": "vestingEnabled", - "nameLocation": "793:14:16", - "scope": 26117, + "nameLocation": "789:14:18", + "scope": 28096, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1095,10 +1160,10 @@ "typeString": "bool" }, "typeName": { - "id": 25546, + "id": 27510, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "781:4:16", + "src": "777:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1107,74 +1172,103 @@ "visibility": "public" }, { - "id": 25552, + "id": 27514, "nodeType": "VariableDeclaration", - "src": "861:26:16", + "src": "857:32:18", "nodes": [], "constant": false, "documentation": { - "id": 25548, + "id": 27512, "nodeType": "StructuredDocumentation", - "src": "815:40:16", + "src": "811:40:18", "text": "@notice vesting enabled when true." }, + "functionSelector": "a145f1b5", + "mutability": "mutable", + "name": "totalTokensToVest", + "nameLocation": "872:17:18", + "scope": 28096, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27513, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "857:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 27518, + "nodeType": "VariableDeclaration", + "src": "898:26:18", + "nodes": [], + "constant": false, "mutability": "mutable", "name": "investorLibrary", - "nameLocation": "872:15:16", - "scope": 26117, + "nameLocation": "909:15:18", + "scope": 28096, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor[]" }, "typeName": { "baseType": { - "id": 25550, + "id": 27516, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 25549, + "id": 27515, "name": "Investor", "nameLocations": [ - "861:8:16" + "898:8:18" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 25559, - "src": "861:8:16" + "referencedDeclaration": 27525, + "src": "898:8:18" }, - "referencedDeclaration": 25559, - "src": "861:8:16", + "referencedDeclaration": 27525, + "src": "898:8:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_storage_ptr", "typeString": "struct Vesting.Investor" } }, - "id": 25551, + "id": 27517, "nodeType": "ArrayTypeName", - "src": "861:10:16", + "src": "898:10:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage_ptr", "typeString": "struct Vesting.Investor[]" } }, "visibility": "internal" }, { - "id": 25559, + "id": 27525, "nodeType": "StructDefinition", - "src": "1171:113:16", + "src": "1208:113:18", "nodes": [], "canonicalName": "Vesting.Investor", "members": [ { "constant": false, - "id": 25554, + "id": 27520, "mutability": "mutable", "name": "account", - "nameLocation": "1206:7:16", + "nameLocation": "1243:7:18", "nodeType": "VariableDeclaration", - "scope": 25559, - "src": "1198:15:16", + "scope": 27525, + "src": "1235:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1182,10 +1276,10 @@ "typeString": "address" }, "typeName": { - "id": 25553, + "id": 27519, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1198:7:16", + "src": "1235:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1196,13 +1290,13 @@ }, { "constant": false, - "id": 25556, + "id": 27522, "mutability": "mutable", "name": "tokensToVest", - "nameLocation": "1232:12:16", + "nameLocation": "1269:12:18", "nodeType": "VariableDeclaration", - "scope": 25559, - "src": "1224:20:16", + "scope": 27525, + "src": "1261:20:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1210,10 +1304,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25555, + "id": 27521, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1224:7:16", + "src": "1261:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1223,13 +1317,13 @@ }, { "constant": false, - "id": 25558, + "id": 27524, "mutability": "mutable", "name": "tokensClaimed", - "nameLocation": "1263:13:16", + "nameLocation": "1300:13:18", "nodeType": "VariableDeclaration", - "scope": 25559, - "src": "1255:21:16", + "scope": 27525, + "src": "1292:21:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1237,10 +1331,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25557, + "id": 27523, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1255:7:16", + "src": "1292:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1250,21 +1344,21 @@ } ], "name": "Investor", - "nameLocation": "1178:8:16", - "scope": 26117, + "nameLocation": "1215:8:18", + "scope": 28096, "visibility": "public" }, { - "id": 25563, + "id": 27529, "nodeType": "VariableDeclaration", - "src": "1292:41:16", + "src": "1329:41:18", "nodes": [], "constant": false, "functionSelector": "6f7bc9be", "mutability": "mutable", "name": "investors", - "nameLocation": "1324:9:16", - "scope": 26117, + "nameLocation": "1361:9:18", + "scope": 28096, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1272,28 +1366,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 25562, + "id": 27528, "keyType": { - "id": 25560, + "id": 27526, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1300:7:16", + "src": "1337:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1292:24:16", + "src": "1329:24:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 25561, + "id": 27527, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1311:4:16", + "src": "1348:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1303,30 +1397,30 @@ "visibility": "public" }, { - "id": 25580, + "id": 27546, "nodeType": "FunctionDefinition", - "src": "1724:128:16", + "src": "1761:128:18", "nodes": [], "body": { - "id": 25579, + "id": 27545, "nodeType": "Block", - "src": "1773:79:16", + "src": "1810:79:18", "nodes": [], "statements": [ { "expression": { - "id": 25573, + "id": 27539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 25571, + "id": 27537, "name": "proveToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25541, - "src": "1784:10:16", + "referencedDeclaration": 27505, + "src": "1821:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1335,37 +1429,37 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 25572, + "id": 27538, "name": "_proveToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25566, - "src": "1797:11:16", + "referencedDeclaration": 27532, + "src": "1834:11:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1784:24:16", + "src": "1821:24:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 25574, + "id": 27540, "nodeType": "ExpressionStatement", - "src": "1784:24:16" + "src": "1821:24:18" }, { "expression": { "arguments": [ { - "id": 25576, + "id": 27542, "name": "_admin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25568, - "src": "1837:6:16", + "referencedDeclaration": 27534, + "src": "1874:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1379,18 +1473,18 @@ "typeString": "address" } ], - "id": 25575, + "id": 27541, "name": "transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26256, - "src": "1819:17:16", + "referencedDeclaration": 28235, + "src": "1856:17:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 25577, + "id": 27543, "isConstant": false, "isLValue": false, "isPure": false, @@ -1399,23 +1493,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1819:25:16", + "src": "1856:25:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25578, + "id": 27544, "nodeType": "ExpressionStatement", - "src": "1819:25:16" + "src": "1856:25:18" } ] }, "documentation": { - "id": 25564, + "id": 27530, "nodeType": "StructuredDocumentation", - "src": "1342:48:16", + "src": "1379:48:18", "text": "@notice Mapping to track investor addresses." }, "implemented": true, @@ -1424,18 +1518,18 @@ "name": "", "nameLocation": "-1:-1:-1", "parameters": { - "id": 25569, + "id": 27535, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25566, + "id": 27532, "mutability": "mutable", "name": "_proveToken", - "nameLocation": "1744:11:16", + "nameLocation": "1781:11:18", "nodeType": "VariableDeclaration", - "scope": 25580, - "src": "1736:19:16", + "scope": 27546, + "src": "1773:19:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1443,10 +1537,10 @@ "typeString": "address" }, "typeName": { - "id": 25565, + "id": 27531, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1736:7:16", + "src": "1773:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1457,13 +1551,13 @@ }, { "constant": false, - "id": 25568, + "id": 27534, "mutability": "mutable", "name": "_admin", - "nameLocation": "1765:6:16", + "nameLocation": "1802:6:18", "nodeType": "VariableDeclaration", - "scope": 25580, - "src": "1757:14:16", + "scope": 27546, + "src": "1794:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1471,10 +1565,10 @@ "typeString": "address" }, "typeName": { - "id": 25567, + "id": 27533, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1757:7:16", + "src": "1794:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1484,28 +1578,28 @@ "visibility": "internal" } ], - "src": "1735:37:16" + "src": "1772:37:18" }, "returnParameters": { - "id": 25570, + "id": 27536, "nodeType": "ParameterList", "parameters": [], - "src": "1773:0:16" + "src": "1810:0:18" }, - "scope": 26117, + "scope": 28096, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 25595, + "id": 27561, "nodeType": "ModifierDefinition", - "src": "1980:155:16", + "src": "2017:155:18", "nodes": [], "body": { - "id": 25594, + "id": 27560, "nodeType": "Block", - "src": "2004:131:16", + "src": "2041:131:18", "nodes": [], "statements": [ { @@ -1516,47 +1610,47 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 25589, + "id": 27555, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 25584, + "id": 27550, "name": "investors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25563, - "src": "2023:9:16", + "referencedDeclaration": 27529, + "src": "2060:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 25587, + "id": 27553, "indexExpression": { "expression": { - "id": 25585, + "id": 27551, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2033:3:16", + "src": "2070:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 25586, + "id": 27552, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2037:6:16", + "memberLocation": "2074:6:18", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2033:10:16", + "src": "2070:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1567,7 +1661,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2023:21:16", + "src": "2060:21:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1577,21 +1671,21 @@ "operator": "==", "rightExpression": { "hexValue": "74727565", - "id": 25588, + "id": 27554, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2048:4:16", + "src": "2085:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "2023:29:16", + "src": "2060:29:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1599,14 +1693,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e73656e646572206d75737420626520616e20696e766573746f72", - "id": 25590, + "id": 27556, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2054:60:16", + "src": "2091:60:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_04c0e7337b94cd08ab709ab9e01a52972b8997f541f0ec03cfdf895720fa5020", "typeString": "literal_string \"Vesting.sol::onlyInvestor() msg.sender must be an investor\"" @@ -1625,7 +1719,7 @@ "typeString": "literal_string \"Vesting.sol::onlyInvestor() msg.sender must be an investor\"" } ], - "id": 25583, + "id": 27549, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1633,13 +1727,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2015:7:16", + "src": "2052:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 25591, + "id": 27557, "isConstant": false, "isLValue": false, "isPure": false, @@ -1648,70 +1742,70 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2015:100:16", + "src": "2052:100:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25592, + "id": 27558, "nodeType": "ExpressionStatement", - "src": "2015:100:16" + "src": "2052:100:18" }, { - "id": 25593, + "id": 27559, "nodeType": "PlaceholderStatement", - "src": "2126:1:16" + "src": "2163:1:18" } ] }, "documentation": { - "id": 25581, + "id": 27547, "nodeType": "StructuredDocumentation", - "src": "1918:56:16", + "src": "1955:56:18", "text": "@dev modifier to check if msg.sender is an investor." }, "name": "onlyInvestor", - "nameLocation": "1989:12:16", + "nameLocation": "2026:12:18", "parameters": { - "id": 25582, + "id": 27548, "nodeType": "ParameterList", "parameters": [], - "src": "2001:2:16" + "src": "2038:2:18" }, "virtual": false, "visibility": "internal" }, { - "id": 25602, + "id": 27568, "nodeType": "EventDefinition", - "src": "2406:59:16", + "src": "2443:59:18", "nodes": [], "anonymous": false, "documentation": { - "id": 25596, + "id": 27562, "nodeType": "StructuredDocumentation", - "src": "2192:208:16", + "src": "2229:208:18", "text": "@notice This event is emitted when claim() is successfully executed.\n @param account is the wallet address of msg.sender.\n @param amountClaimed is the amount of tokens the account claimed." }, "eventSelector": "c9ff33ee3842ec05cab3a4e2b17aa19694b6c461ea543be5752366f912a6539d", "name": "ProveClaimed", - "nameLocation": "2412:12:16", + "nameLocation": "2449:12:18", "parameters": { - "id": 25601, + "id": 27567, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25598, + "id": 27564, "indexed": false, "mutability": "mutable", "name": "account", - "nameLocation": "2433:7:16", + "nameLocation": "2470:7:18", "nodeType": "VariableDeclaration", - "scope": 25602, - "src": "2425:15:16", + "scope": 27568, + "src": "2462:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1719,10 +1813,10 @@ "typeString": "address" }, "typeName": { - "id": 25597, + "id": 27563, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2425:7:16", + "src": "2462:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1733,14 +1827,14 @@ }, { "constant": false, - "id": 25600, + "id": 27566, "indexed": false, "mutability": "mutable", "name": "amountClaimed", - "nameLocation": "2450:13:16", + "nameLocation": "2487:13:18", "nodeType": "VariableDeclaration", - "scope": 25602, - "src": "2442:21:16", + "scope": 27568, + "src": "2479:21:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1748,10 +1842,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25599, + "id": 27565, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2442:7:16", + "src": "2479:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1760,38 +1854,38 @@ "visibility": "internal" } ], - "src": "2424:40:16" + "src": "2461:40:18" } }, { - "id": 25607, + "id": 27573, "nodeType": "EventDefinition", - "src": "2654:45:16", + "src": "2691:45:18", "nodes": [], "anonymous": false, "documentation": { - "id": 25603, + "id": 27569, "nodeType": "StructuredDocumentation", - "src": "2473:175:16", + "src": "2510:175:18", "text": "@notice This event is emitted when addInvestor() is successfully executed.\n @param account is the wallet address of investor that was added to the investorLibrary." }, "eventSelector": "62e6a5118be03f9bfedb79b0ed7ed75ee4a9e15fc4c69d2c4976acde26fa2d5f", "name": "InvestorAdded", - "nameLocation": "2660:13:16", + "nameLocation": "2697:13:18", "parameters": { - "id": 25606, + "id": 27572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25605, + "id": 27571, "indexed": true, "mutability": "mutable", "name": "account", - "nameLocation": "2690:7:16", + "nameLocation": "2727:7:18", "nodeType": "VariableDeclaration", - "scope": 25607, - "src": "2674:23:16", + "scope": 27573, + "src": "2711:23:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1799,10 +1893,10 @@ "typeString": "address" }, "typeName": { - "id": 25604, + "id": 27570, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2674:7:16", + "src": "2711:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1812,38 +1906,38 @@ "visibility": "internal" } ], - "src": "2673:25:16" + "src": "2710:25:18" } }, { - "id": 25612, + "id": 27578, "nodeType": "EventDefinition", - "src": "2891:47:16", + "src": "2928:47:18", "nodes": [], "anonymous": false, "documentation": { - "id": 25608, + "id": 27574, "nodeType": "StructuredDocumentation", - "src": "2707:178:16", + "src": "2744:178:18", "text": "@notice This event is emitted when removeInvestor() is successfully executed.\n @param account is the wallet address of investor that was added to the investorLibrary." }, "eventSelector": "ba0013628ccb89af5bb18edf764d3a7b35c07b894848b8e6fd3434719de39c7d", "name": "InvestorRemoved", - "nameLocation": "2897:15:16", + "nameLocation": "2934:15:18", "parameters": { - "id": 25611, + "id": 27577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25610, + "id": 27576, "indexed": true, "mutability": "mutable", "name": "account", - "nameLocation": "2929:7:16", + "nameLocation": "2966:7:18", "nodeType": "VariableDeclaration", - "scope": 25612, - "src": "2913:23:16", + "scope": 27578, + "src": "2950:23:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1851,10 +1945,10 @@ "typeString": "address" }, "typeName": { - "id": 25609, + "id": 27575, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2913:7:16", + "src": "2950:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1864,38 +1958,38 @@ "visibility": "internal" } ], - "src": "2912:25:16" + "src": "2949:25:18" } }, { - "id": 25621, + "id": 27587, "nodeType": "EventDefinition", - "src": "3154:76:16", + "src": "3191:76:18", "nodes": [], "anonymous": false, "documentation": { - "id": 25613, + "id": 27579, "nodeType": "StructuredDocumentation", - "src": "2946:202:16", + "src": "2983:202:18", "text": "@notice This event is emitted when withdrawErc20() is executed.\n @param token address of Erc20 token.\n @param amount tokens withdrawn.\n @param receiver address of msg.sender." }, "eventSelector": "3ff9434501bb42cce78344c3420ec1273f8b404aba16aaae994c0d413b91bb4f", "name": "Erc20TokensWithdrawn", - "nameLocation": "3160:20:16", + "nameLocation": "3197:20:18", "parameters": { - "id": 25620, + "id": 27586, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25615, + "id": 27581, "indexed": false, "mutability": "mutable", "name": "token", - "nameLocation": "3189:5:16", + "nameLocation": "3226:5:18", "nodeType": "VariableDeclaration", - "scope": 25621, - "src": "3181:13:16", + "scope": 27587, + "src": "3218:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1903,10 +1997,10 @@ "typeString": "address" }, "typeName": { - "id": 25614, + "id": 27580, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3181:7:16", + "src": "3218:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1917,14 +2011,14 @@ }, { "constant": false, - "id": 25617, + "id": 27583, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "3204:6:16", + "nameLocation": "3241:6:18", "nodeType": "VariableDeclaration", - "scope": 25621, - "src": "3196:14:16", + "scope": 27587, + "src": "3233:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1932,10 +2026,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25616, + "id": 27582, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3196:7:16", + "src": "3233:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1945,14 +2039,14 @@ }, { "constant": false, - "id": 25619, + "id": 27585, "indexed": false, "mutability": "mutable", "name": "receiver", - "nameLocation": "3220:8:16", + "nameLocation": "3257:8:18", "nodeType": "VariableDeclaration", - "scope": 25621, - "src": "3212:16:16", + "scope": 27587, + "src": "3249:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1960,10 +2054,10 @@ "typeString": "address" }, "typeName": { - "id": 25618, + "id": 27584, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3212:7:16", + "src": "3249:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1973,52 +2067,52 @@ "visibility": "internal" } ], - "src": "3180:49:16" + "src": "3217:49:18" } }, { - "id": 25624, + "id": 27590, "nodeType": "EventDefinition", - "src": "3341:23:16", + "src": "3378:23:18", "nodes": [], "anonymous": false, "documentation": { - "id": 25622, + "id": 27588, "nodeType": "StructuredDocumentation", - "src": "3238:97:16", + "src": "3275:97:18", "text": "@notice This event is emitted when enableVesting() is executed. Should only be executed once." }, "eventSelector": "f78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa3", "name": "VestingEnabled", - "nameLocation": "3347:14:16", + "nameLocation": "3384:14:18", "parameters": { - "id": 25623, + "id": 27589, "nodeType": "ParameterList", "parameters": [], - "src": "3361:2:16" + "src": "3398:2:18" } }, { - "id": 25682, + "id": 27648, "nodeType": "FunctionDefinition", - "src": "3530:699:16", + "src": "3567:699:18", "nodes": [], "body": { - "id": 25681, + "id": 27647, "nodeType": "Block", - "src": "3571:658:16", + "src": "3608:658:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 25631, + "id": 27597, "name": "vestingEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25547, - "src": "3590:14:16", + "referencedDeclaration": 27511, + "src": "3627:14:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2026,14 +2120,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a636c61696d28292076657374696e67206973206e6f7420656e61626c6564", - "id": 25632, + "id": 27598, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3606:45:16", + "src": "3643:45:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_34ce9ff9fcf1e453c578e481f1424d1ad92317cc4ad3678a8839da76e7fbb7d6", "typeString": "literal_string \"Vesting.sol::claim() vesting is not enabled\"" @@ -2052,7 +2146,7 @@ "typeString": "literal_string \"Vesting.sol::claim() vesting is not enabled\"" } ], - "id": 25630, + "id": 27596, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2060,13 +2154,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3582:7:16", + "src": "3619:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 25633, + "id": 27599, "isConstant": false, "isLValue": false, "isPure": false, @@ -2075,31 +2169,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3582:70:16", + "src": "3619:70:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25634, + "id": 27600, "nodeType": "ExpressionStatement", - "src": "3582:70:16" + "src": "3619:70:18" }, { "assignments": [ - 25636 + 27602 ], "declarations": [ { "constant": false, - "id": 25636, + "id": 27602, "mutability": "mutable", "name": "amountToClaim", - "nameLocation": "3671:13:16", + "nameLocation": "3708:13:18", "nodeType": "VariableDeclaration", - "scope": 25681, - "src": "3663:21:16", + "scope": 27647, + "src": "3700:21:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2107,10 +2201,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25635, + "id": 27601, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3663:7:16", + "src": "3700:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2119,31 +2213,31 @@ "visibility": "internal" } ], - "id": 25641, + "id": 27607, "initialValue": { "arguments": [ { "expression": { - "id": 25638, + "id": 27604, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "3704:3:16", + "src": "3741:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 25639, + "id": 27605, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3708:6:16", + "memberLocation": "3745:6:18", "memberName": "sender", "nodeType": "MemberAccess", - "src": "3704:10:16", + "src": "3741:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2157,18 +2251,18 @@ "typeString": "address" } ], - "id": 25637, + "id": 27603, "name": "getAmountToClaim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26000, - "src": "3687:16:16", + "referencedDeclaration": 27979, + "src": "3724:16:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 25640, + "id": 27606, "isConstant": false, "isLValue": false, "isPure": false, @@ -2177,7 +2271,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3687:28:16", + "src": "3724:28:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2185,7 +2279,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3663:52:16" + "src": "3700:52:18" }, { "expression": { @@ -2195,18 +2289,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25645, + "id": 27611, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25643, + "id": 27609, "name": "amountToClaim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25636, - "src": "3734:13:16", + "referencedDeclaration": 27602, + "src": "3771:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2216,21 +2310,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 25644, + "id": 27610, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3750:1:16", + "src": "3787:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3734:17:16", + "src": "3771:17:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2238,14 +2332,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686173206e6f20746f6b656e7320746f20636c61696d", - "id": 25646, + "id": 27612, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3753:54:16", + "src": "3790:54:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7fe10741cbe6c2a9cecbadf80743676cd6f5fd9119dd5a58d21ffa6d6e330a51", "typeString": "literal_string \"Vesting.sol::claim() investor has no tokens to claim\"" @@ -2264,7 +2358,7 @@ "typeString": "literal_string \"Vesting.sol::claim() investor has no tokens to claim\"" } ], - "id": 25642, + "id": 27608, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2272,13 +2366,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3726:7:16", + "src": "3763:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 25647, + "id": 27613, "isConstant": false, "isLValue": false, "isPure": false, @@ -2287,16 +2381,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3726:82:16", + "src": "3763:82:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25648, + "id": 27614, "nodeType": "ExpressionStatement", - "src": "3726:82:16" + "src": "3763:82:18" }, { "expression": { @@ -2305,38 +2399,38 @@ "arguments": [ { "expression": { - "id": 25654, + "id": 27620, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "3889:3:16", + "src": "3926:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 25655, + "id": 27621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3893:6:16", + "memberLocation": "3930:6:18", "memberName": "sender", "nodeType": "MemberAccess", - "src": "3889:10:16", + "src": "3926:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 25656, + "id": 27622, "name": "amountToClaim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25636, - "src": "3901:13:16", + "referencedDeclaration": 27602, + "src": "3938:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2357,12 +2451,12 @@ "expression": { "arguments": [ { - "id": 25651, + "id": 27617, "name": "proveToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25541, - "src": "3868:10:16", + "referencedDeclaration": 27505, + "src": "3905:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2376,18 +2470,18 @@ "typeString": "address" } ], - "id": 25650, + "id": 27616, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "3861:6:16", + "referencedDeclaration": 29158, + "src": "3898:6:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 25652, + "id": 27618, "isConstant": false, "isLValue": false, "isPure": false, @@ -2396,29 +2490,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3861:18:16", + "src": "3898:18:18", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 25653, + "id": 27619, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3880:8:16", + "memberLocation": "3917:8:18", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 26374, - "src": "3861:27:16", + "referencedDeclaration": 29107, + "src": "3898:27:18", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 25657, + "id": 27623, "isConstant": false, "isLValue": false, "isPure": false, @@ -2427,7 +2521,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3861:54:16", + "src": "3898:54:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2436,14 +2530,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a636c61696d2829207472616e7366657220756e7375636365737366756c", - "id": 25658, + "id": 27624, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3917:44:16", + "src": "3954:44:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1582297afdf7bee42b6ca3b96d51a42caca872f6fd9c2b28e52da0c647e180a4", "typeString": "literal_string \"Vesting.sol::claim() transfer unsuccessful\"" @@ -2462,7 +2556,7 @@ "typeString": "literal_string \"Vesting.sol::claim() transfer unsuccessful\"" } ], - "id": 25649, + "id": 27615, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2470,13 +2564,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3853:7:16", + "src": "3890:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 25659, + "id": 27625, "isConstant": false, "isLValue": false, "isPure": false, @@ -2485,31 +2579,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3853:109:16", + "src": "3890:109:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25660, + "id": 27626, "nodeType": "ExpressionStatement", - "src": "3853:109:16" + "src": "3890:109:18" }, { "assignments": [ - 25662 + 27628 ], "declarations": [ { "constant": false, - "id": 25662, + "id": 27628, "mutability": "mutable", "name": "idx", - "nameLocation": "4026:3:16", + "nameLocation": "4063:3:18", "nodeType": "VariableDeclaration", - "scope": 25681, - "src": "4018:11:16", + "scope": 27647, + "src": "4055:11:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2517,10 +2611,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25661, + "id": 27627, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4018:7:16", + "src": "4055:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2529,31 +2623,31 @@ "visibility": "internal" } ], - "id": 25667, + "id": 27633, "initialValue": { "arguments": [ { "expression": { - "id": 25664, + "id": 27630, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4047:3:16", + "src": "4084:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 25665, + "id": 27631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4051:6:16", + "memberLocation": "4088:6:18", "memberName": "sender", "nodeType": "MemberAccess", - "src": "4047:10:16", + "src": "4084:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2567,18 +2661,18 @@ "typeString": "address" } ], - "id": 25663, + "id": 27629, "name": "locateInvestor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26105, - "src": "4032:14:16", + "referencedDeclaration": 28084, + "src": "4069:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 25666, + "id": 27632, "isConstant": false, "isLValue": false, "isPure": false, @@ -2587,7 +2681,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4032:26:16", + "src": "4069:26:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2595,11 +2689,11 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4018:40:16" + "src": "4055:40:18" }, { "expression": { - "id": 25673, + "id": 27639, "isConstant": false, "isLValue": false, "isPure": false, @@ -2607,25 +2701,25 @@ "leftHandSide": { "expression": { "baseExpression": { - "id": 25668, + "id": 27634, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "4113:15:16", + "referencedDeclaration": 27518, + "src": "4150:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 25670, + "id": 27636, "indexExpression": { - "id": 25669, + "id": 27635, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25662, - "src": "4129:3:16", + "referencedDeclaration": 27628, + "src": "4166:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2636,22 +2730,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4113:20:16", + "src": "4150:20:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage", + "typeIdentifier": "t_struct$_Investor_$27525_storage", "typeString": "struct Vesting.Investor storage ref" } }, - "id": 25671, + "id": 27637, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4134:13:16", + "memberLocation": "4171:13:18", "memberName": "tokensClaimed", "nodeType": "MemberAccess", - "referencedDeclaration": 25558, - "src": "4113:34:16", + "referencedDeclaration": 27524, + "src": "4150:34:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2660,64 +2754,64 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 25672, + "id": 27638, "name": "amountToClaim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25636, - "src": "4151:13:16", + "referencedDeclaration": 27602, + "src": "4188:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4113:51:16", + "src": "4150:51:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 25674, + "id": 27640, "nodeType": "ExpressionStatement", - "src": "4113:51:16" + "src": "4150:51:18" }, { "eventCall": { "arguments": [ { "expression": { - "id": 25676, + "id": 27642, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4195:3:16", + "src": "4232:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 25677, + "id": 27643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4199:6:16", + "memberLocation": "4236:6:18", "memberName": "sender", "nodeType": "MemberAccess", - "src": "4195:10:16", + "src": "4232:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 25678, + "id": 27644, "name": "amountToClaim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25636, - "src": "4207:13:16", + "referencedDeclaration": 27602, + "src": "4244:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2735,18 +2829,18 @@ "typeString": "uint256" } ], - "id": 25675, + "id": 27641, "name": "ProveClaimed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25602, - "src": "4182:12:16", + "referencedDeclaration": 27568, + "src": "4219:12:18", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 25679, + "id": 27645, "isConstant": false, "isLValue": false, "isPure": false, @@ -2755,23 +2849,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4182:39:16", + "src": "4219:39:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25680, + "id": 27646, "nodeType": "EmitStatement", - "src": "4177:44:16" + "src": "4214:44:18" } ] }, "documentation": { - "id": 25625, + "id": 27591, "nodeType": "StructuredDocumentation", - "src": "3430:94:16", + "src": "3467:94:18", "text": "@notice Used to claim vested tokens.\n @dev msg.sender must be the investor address" }, "functionSelector": "4e71d92d", @@ -2780,50 +2874,50 @@ "modifiers": [ { "arguments": [], - "id": 25628, + "id": 27594, "kind": "modifierInvocation", "modifierName": { - "id": 25627, + "id": 27593, "name": "onlyInvestor", "nameLocations": [ - "3556:12:16" + "3593:12:18" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 25595, - "src": "3556:12:16" + "referencedDeclaration": 27561, + "src": "3593:12:18" }, "nodeType": "ModifierInvocation", - "src": "3556:14:16" + "src": "3593:14:18" } ], "name": "claim", - "nameLocation": "3539:5:16", + "nameLocation": "3576:5:18", "parameters": { - "id": 25626, + "id": 27592, "nodeType": "ParameterList", "parameters": [], - "src": "3544:2:16" + "src": "3581:2:18" }, "returnParameters": { - "id": 25629, + "id": 27595, "nodeType": "ParameterList", "parameters": [], - "src": "3571:0:16" + "src": "3608:0:18" }, - "scope": 26117, + "scope": 28096, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 25739, + "id": 27709, "nodeType": "FunctionDefinition", - "src": "4615:548:16", + "src": "4652:595:18", "nodes": [], "body": { - "id": 25738, + "id": 27708, "nodeType": "Block", - "src": "4698:465:16", + "src": "4735:512:18", "nodes": [], "statements": [ { @@ -2834,32 +2928,32 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 25697, + "id": 27663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 25693, + "id": 27659, "name": "investors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25563, - "src": "4717:9:16", + "referencedDeclaration": 27529, + "src": "4754:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 25695, + "id": 27661, "indexExpression": { - "id": 25694, + "id": 27660, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25685, - "src": "4727:8:16", + "referencedDeclaration": 27651, + "src": "4764:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2870,7 +2964,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4717:19:16", + "src": "4754:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2880,21 +2974,21 @@ "operator": "==", "rightExpression": { "hexValue": "66616c7365", - "id": 25696, + "id": 27662, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4740:5:16", + "src": "4777:5:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "4717:28:16", + "src": "4754:28:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2902,14 +2996,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a616464496e766573746f72282920696e766573746f7220697320616c7265616479206164646564", - "id": 25698, + "id": 27664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4747:54:16", + "src": "4784:54:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ac8b3365ec58116f79763809b4a76f0b400571fe8055cd18bc01fd9ea666875f", "typeString": "literal_string \"Vesting.sol::addInvestor() investor is already added\"" @@ -2928,7 +3022,7 @@ "typeString": "literal_string \"Vesting.sol::addInvestor() investor is already added\"" } ], - "id": 25692, + "id": 27658, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2936,13 +3030,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4709:7:16", + "src": "4746:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 25699, + "id": 27665, "isConstant": false, "isLValue": false, "isPure": false, @@ -2951,16 +3045,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4709:93:16", + "src": "4746:93:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25700, + "id": 27666, "nodeType": "ExpressionStatement", - "src": "4709:93:16" + "src": "4746:93:18" }, { "expression": { @@ -2970,18 +3064,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 25707, + "id": 27673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25702, + "id": 27668, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25685, - "src": "4821:8:16", + "referencedDeclaration": 27651, + "src": "4858:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2993,14 +3087,14 @@ "arguments": [ { "hexValue": "30", - "id": 25705, + "id": 27671, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4841:1:16", + "src": "4878:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3015,26 +3109,26 @@ "typeString": "int_const 0" } ], - "id": 25704, + "id": 27670, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4833:7:16", + "src": "4870:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 25703, + "id": 27669, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4833:7:16", + "src": "4870:7:18", "typeDescriptions": {} } }, - "id": 25706, + "id": 27672, "isConstant": false, "isLValue": false, "isPure": true, @@ -3043,14 +3137,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4833:10:16", + "src": "4870:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4821:22:16", + "src": "4858:22:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3058,14 +3152,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f756e742063616e6e6f742062652061646472657373283029", - "id": 25708, + "id": 27674, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4845:58:16", + "src": "4882:58:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_43a7576cc71999d5991f16be987a98bc7d178f59df62ec343336a603751a8636", "typeString": "literal_string \"Vesting.sol::addInvestor() _account cannot be address(0)\"" @@ -3084,7 +3178,7 @@ "typeString": "literal_string \"Vesting.sol::addInvestor() _account cannot be address(0)\"" } ], - "id": 25701, + "id": 27667, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3092,13 +3186,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4813:7:16", + "src": "4850:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 25709, + "id": 27675, "isConstant": false, "isLValue": false, "isPure": false, @@ -3107,16 +3201,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4813:91:16", + "src": "4850:91:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25710, + "id": 27676, "nodeType": "ExpressionStatement", - "src": "4813:91:16" + "src": "4850:91:18" }, { "expression": { @@ -3126,18 +3220,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25714, + "id": 27680, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25712, + "id": 27678, "name": "_tokensToVest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25687, - "src": "4923:13:16", + "referencedDeclaration": 27653, + "src": "4960:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3147,21 +3241,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 25713, + "id": 27679, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4939:1:16", + "src": "4976:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4923:17:16", + "src": "4960:17:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3169,14 +3263,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b656e73546f56657374206d7573742062652067742030", - "id": 25715, + "id": 27681, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4942:55:16", + "src": "4979:55:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6c29cccc352d3a7eba90af13be2b3943b9e81df521048af1ca34057bc8661bb8", "typeString": "literal_string \"Vesting.sol::addInvestor() _tokensToVest must be gt 0\"" @@ -3195,7 +3289,7 @@ "typeString": "literal_string \"Vesting.sol::addInvestor() _tokensToVest must be gt 0\"" } ], - "id": 25711, + "id": 27677, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3203,13 +3297,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4915:7:16", + "src": "4952:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 25716, + "id": 27682, "isConstant": false, "isLValue": false, "isPure": false, @@ -3218,45 +3312,45 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4915:83:16", + "src": "4952:83:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25717, + "id": 27683, "nodeType": "ExpressionStatement", - "src": "4915:83:16" + "src": "4952:83:18" }, { "expression": { - "id": 25722, + "id": 27688, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 25718, + "id": 27684, "name": "investors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25563, - "src": "5011:9:16", + "referencedDeclaration": 27529, + "src": "5048:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 25720, + "id": 27686, "indexExpression": { - "id": 25719, + "id": 27685, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25685, - "src": "5021:8:16", + "referencedDeclaration": 27651, + "src": "5058:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3267,7 +3361,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5011:19:16", + "src": "5048:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3277,29 +3371,29 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 25721, + "id": 27687, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5033:4:16", + "src": "5070:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "5011:26:16", + "src": "5048:26:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 25723, + "id": 27689, "nodeType": "ExpressionStatement", - "src": "5011:26:16" + "src": "5048:26:18" }, { "expression": { @@ -3307,24 +3401,24 @@ { "arguments": [ { - "id": 25728, + "id": 27694, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25685, - "src": "5078:8:16", + "referencedDeclaration": 27651, + "src": "5115:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 25729, + "id": 27695, "name": "_tokensToVest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25687, - "src": "5088:13:16", + "referencedDeclaration": 27653, + "src": "5125:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3332,14 +3426,14 @@ }, { "hexValue": "30", - "id": 25730, + "id": 27696, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5103:1:16", + "src": "5140:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3362,18 +3456,18 @@ "typeString": "int_const 0" } ], - "id": 25727, + "id": 27693, "name": "Investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25559, - "src": "5069:8:16", + "referencedDeclaration": 27525, + "src": "5106:8:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Investor_$25559_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Investor_$27525_storage_ptr_$", "typeString": "type(struct Vesting.Investor storage pointer)" } }, - "id": 25731, + "id": 27697, "isConstant": false, "isLValue": false, "isPure": false, @@ -3382,10 +3476,10 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5069:36:16", + "src": "5106:36:18", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } } @@ -3393,37 +3487,37 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Investor_$25559_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } ], "expression": { - "id": 25724, + "id": 27690, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "5048:15:16", + "referencedDeclaration": 27518, + "src": "5085:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 25726, + "id": 27692, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5064:4:16", + "memberLocation": "5101:4:18", "memberName": "push", "nodeType": "MemberAccess", - "src": "5048:20:16", + "src": "5085:20:18", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Investor_$25559_storage_$dyn_storage_ptr_$_t_struct$_Investor_$25559_storage_$returns$__$bound_to$_t_array$_t_struct$_Investor_$25559_storage_$dyn_storage_ptr_$", + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Investor_$27525_storage_$dyn_storage_ptr_$_t_struct$_Investor_$27525_storage_$returns$__$bound_to$_t_array$_t_struct$_Investor_$27525_storage_$dyn_storage_ptr_$", "typeString": "function (struct Vesting.Investor storage ref[] storage pointer,struct Vesting.Investor storage ref)" } }, - "id": 25732, + "id": 27698, "isConstant": false, "isLValue": false, "isPure": false, @@ -3432,27 +3526,70 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5048:58:16", + "src": "5085:58:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25733, + "id": 27699, + "nodeType": "ExpressionStatement", + "src": "5085:58:18" + }, + { + "expression": { + "id": 27702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27700, + "name": "totalTokensToVest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27514, + "src": "5156:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 27701, + "name": "_tokensToVest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27653, + "src": "5177:13:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5156:34:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27703, "nodeType": "ExpressionStatement", - "src": "5048:58:16" + "src": "5156:34:18" }, { "eventCall": { "arguments": [ { - "id": 25735, + "id": 27705, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25685, - "src": "5146:8:16", + "referencedDeclaration": 27651, + "src": "5230:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3466,18 +3603,18 @@ "typeString": "address" } ], - "id": 25734, + "id": 27704, "name": "InvestorAdded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25607, - "src": "5132:13:16", + "referencedDeclaration": 27573, + "src": "5216:13:18", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 25736, + "id": 27706, "isConstant": false, "isLValue": false, "isPure": false, @@ -3486,23 +3623,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5132:23:16", + "src": "5216:23:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25737, + "id": 27707, "nodeType": "EmitStatement", - "src": "5127:28:16" + "src": "5211:28:18" } ] }, "documentation": { - "id": 25683, + "id": 27649, "nodeType": "StructuredDocumentation", - "src": "4313:296:16", + "src": "4350:296:18", "text": "@notice This function sets an address as true in the investors mapping and also pushes a new investor element to the Investor array.\n @param _account the wallet address of investor being added.\n @param _tokensToVest the amount of $PROVE that is being vested for that investor." }, "functionSelector": "ec20b457", @@ -3511,37 +3648,37 @@ "modifiers": [ { "arguments": [], - "id": 25690, + "id": 27656, "kind": "modifierInvocation", "modifierName": { - "id": 25689, + "id": 27655, "name": "onlyOwner", "nameLocations": [ - "4686:9:16" + "4723:9:18" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26206, - "src": "4686:9:16" + "referencedDeclaration": 28185, + "src": "4723:9:18" }, "nodeType": "ModifierInvocation", - "src": "4686:11:16" + "src": "4723:11:18" } ], "name": "addInvestor", - "nameLocation": "4624:11:16", + "nameLocation": "4661:11:18", "parameters": { - "id": 25688, + "id": 27654, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25685, + "id": 27651, "mutability": "mutable", "name": "_account", - "nameLocation": "4644:8:16", + "nameLocation": "4681:8:18", "nodeType": "VariableDeclaration", - "scope": 25739, - "src": "4636:16:16", + "scope": 27709, + "src": "4673:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3549,10 +3686,10 @@ "typeString": "address" }, "typeName": { - "id": 25684, + "id": 27650, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4636:7:16", + "src": "4673:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3563,13 +3700,13 @@ }, { "constant": false, - "id": 25687, + "id": 27653, "mutability": "mutable", "name": "_tokensToVest", - "nameLocation": "4662:13:16", + "nameLocation": "4699:13:18", "nodeType": "VariableDeclaration", - "scope": 25739, - "src": "4654:21:16", + "scope": 27709, + "src": "4691:21:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3577,10 +3714,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25686, + "id": 27652, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4654:7:16", + "src": "4691:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3589,28 +3726,28 @@ "visibility": "internal" } ], - "src": "4635:41:16" + "src": "4672:41:18" }, "returnParameters": { - "id": 25691, + "id": 27657, "nodeType": "ParameterList", "parameters": [], - "src": "4698:0:16" + "src": "4735:0:18" }, - "scope": 26117, + "scope": 28096, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 25806, + "id": 27776, "nodeType": "FunctionDefinition", - "src": "5327:529:16", + "src": "5411:529:18", "nodes": [], "body": { - "id": 25805, + "id": 27775, "nodeType": "Block", - "src": "5390:466:16", + "src": "5474:466:18", "nodes": [], "statements": [ { @@ -3621,18 +3758,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 25753, + "id": 27723, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25748, + "id": 27718, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25742, - "src": "5409:8:16", + "referencedDeclaration": 27712, + "src": "5493:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3644,14 +3781,14 @@ "arguments": [ { "hexValue": "30", - "id": 25751, + "id": 27721, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5429:1:16", + "src": "5513:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3666,26 +3803,26 @@ "typeString": "int_const 0" } ], - "id": 25750, + "id": 27720, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5421:7:16", + "src": "5505:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 25749, + "id": 27719, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5421:7:16", + "src": "5505:7:18", "typeDescriptions": {} } }, - "id": 25752, + "id": 27722, "isConstant": false, "isLValue": false, "isPure": true, @@ -3694,14 +3831,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5421:10:16", + "src": "5505:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5409:22:16", + "src": "5493:22:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3709,14 +3846,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a72656d6f7665496e766573746f722829206163636f756e742063616e6e6f742062652061646472657373283029", - "id": 25754, + "id": 27724, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5433:60:16", + "src": "5517:60:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6b2ef8fa4a278f0c633eee5173cf5b45c06af3207fcf59338db6e0d4ebe3ce85", "typeString": "literal_string \"Vesting.sol::removeInvestor() account cannot be address(0)\"" @@ -3735,7 +3872,7 @@ "typeString": "literal_string \"Vesting.sol::removeInvestor() account cannot be address(0)\"" } ], - "id": 25747, + "id": 27717, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3743,13 +3880,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5401:7:16", + "src": "5485:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 25755, + "id": 27725, "isConstant": false, "isLValue": false, "isPure": false, @@ -3758,31 +3895,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5401:93:16", + "src": "5485:93:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25756, + "id": 27726, "nodeType": "ExpressionStatement", - "src": "5401:93:16" + "src": "5485:93:18" }, { "assignments": [ - 25758 + 27728 ], "declarations": [ { "constant": false, - "id": 25758, + "id": 27728, "mutability": "mutable", "name": "idx", - "nameLocation": "5515:3:16", + "nameLocation": "5599:3:18", "nodeType": "VariableDeclaration", - "scope": 25805, - "src": "5507:11:16", + "scope": 27775, + "src": "5591:11:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3790,10 +3927,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25757, + "id": 27727, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5507:7:16", + "src": "5591:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3802,16 +3939,16 @@ "visibility": "internal" } ], - "id": 25762, + "id": 27732, "initialValue": { "arguments": [ { - "id": 25760, + "id": 27730, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25742, - "src": "5536:8:16", + "referencedDeclaration": 27712, + "src": "5620:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3825,18 +3962,18 @@ "typeString": "address" } ], - "id": 25759, + "id": 27729, "name": "locateInvestor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26105, - "src": "5521:14:16", + "referencedDeclaration": 28084, + "src": "5605:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 25761, + "id": 27731, "isConstant": false, "isLValue": false, "isPure": false, @@ -3845,7 +3982,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5521:24:16", + "src": "5605:24:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3853,73 +3990,73 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5507:38:16" + "src": "5591:38:18" }, { "assignments": [ - 25765 + 27735 ], "declarations": [ { "constant": false, - "id": 25765, + "id": 27735, "mutability": "mutable", "name": "temp", - "nameLocation": "5574:4:16", + "nameLocation": "5658:4:18", "nodeType": "VariableDeclaration", - "scope": 25805, - "src": "5558:20:16", + "scope": 27775, + "src": "5642:20:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor" }, "typeName": { - "id": 25764, + "id": 27734, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 25763, + "id": 27733, "name": "Investor", "nameLocations": [ - "5558:8:16" + "5642:8:18" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 25559, - "src": "5558:8:16" + "referencedDeclaration": 27525, + "src": "5642:8:18" }, - "referencedDeclaration": 25559, - "src": "5558:8:16", + "referencedDeclaration": 27525, + "src": "5642:8:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_storage_ptr", "typeString": "struct Vesting.Investor" } }, "visibility": "internal" } ], - "id": 25769, + "id": 27739, "initialValue": { "baseExpression": { - "id": 25766, + "id": 27736, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "5581:15:16", + "referencedDeclaration": 27518, + "src": "5665:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 25768, + "id": 27738, "indexExpression": { - "id": 25767, + "id": 27737, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25758, - "src": "5597:3:16", + "referencedDeclaration": 27728, + "src": "5681:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3930,43 +4067,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5581:20:16", + "src": "5665:20:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage", + "typeIdentifier": "t_struct$_Investor_$27525_storage", "typeString": "struct Vesting.Investor storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "5558:43:16" + "src": "5642:43:18" }, { "expression": { - "id": 25779, + "id": 27749, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 25770, + "id": 27740, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "5612:15:16", + "referencedDeclaration": 27518, + "src": "5696:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 25772, + "id": 27742, "indexExpression": { - "id": 25771, + "id": 27741, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25758, - "src": "5628:3:16", + "referencedDeclaration": 27728, + "src": "5712:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3977,9 +4114,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5612:20:16", + "src": "5696:20:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage", + "typeIdentifier": "t_struct$_Investor_$27525_storage", "typeString": "struct Vesting.Investor storage ref" } }, @@ -3987,50 +4124,50 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 25773, + "id": 27743, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "5635:15:16", + "referencedDeclaration": 27518, + "src": "5719:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 25778, + "id": 27748, "indexExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25777, + "id": 27747, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 25774, + "id": 27744, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "5651:15:16", + "referencedDeclaration": 27518, + "src": "5735:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 25775, + "id": 27745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5667:6:16", + "memberLocation": "5751:6:18", "memberName": "length", "nodeType": "MemberAccess", - "src": "5651:22:16", + "src": "5735:22:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4040,21 +4177,21 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 25776, + "id": 27746, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5674:1:16", + "src": "5758:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "5651:24:16", + "src": "5735:24:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4065,75 +4202,75 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5635:41:16", + "src": "5719:41:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage", + "typeIdentifier": "t_struct$_Investor_$27525_storage", "typeString": "struct Vesting.Investor storage ref" } }, - "src": "5612:64:16", + "src": "5696:64:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage", + "typeIdentifier": "t_struct$_Investor_$27525_storage", "typeString": "struct Vesting.Investor storage ref" } }, - "id": 25780, + "id": 27750, "nodeType": "ExpressionStatement", - "src": "5612:64:16" + "src": "5696:64:18" }, { "expression": { - "id": 25788, + "id": 27758, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 25781, + "id": 27751, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "5687:15:16", + "referencedDeclaration": 27518, + "src": "5771:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 25786, + "id": 27756, "indexExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25785, + "id": 27755, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 25782, + "id": 27752, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "5703:15:16", + "referencedDeclaration": 27518, + "src": "5787:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 25783, + "id": 27753, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5719:6:16", + "memberLocation": "5803:6:18", "memberName": "length", "nodeType": "MemberAccess", - "src": "5703:22:16", + "src": "5787:22:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4143,21 +4280,21 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 25784, + "id": 27754, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5726:1:16", + "src": "5810:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "5703:24:16", + "src": "5787:24:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4168,35 +4305,35 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5687:41:16", + "src": "5771:41:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage", + "typeIdentifier": "t_struct$_Investor_$27525_storage", "typeString": "struct Vesting.Investor storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 25787, + "id": 27757, "name": "temp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25765, - "src": "5731:4:16", + "referencedDeclaration": 27735, + "src": "5815:4:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "src": "5687:48:16", + "src": "5771:48:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage", + "typeIdentifier": "t_struct$_Investor_$27525_storage", "typeString": "struct Vesting.Investor storage ref" } }, - "id": 25789, + "id": 27759, "nodeType": "ExpressionStatement", - "src": "5687:48:16" + "src": "5771:48:18" }, { "expression": { @@ -4204,32 +4341,32 @@ "expression": { "argumentTypes": [], "expression": { - "id": 25790, + "id": 27760, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "5746:15:16", + "referencedDeclaration": 27518, + "src": "5830:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 25792, + "id": 27762, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5762:3:16", + "memberLocation": "5846:3:18", "memberName": "pop", "nodeType": "MemberAccess", - "src": "5746:19:16", + "src": "5830:19:18", "typeDescriptions": { - "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_struct$_Investor_$25559_storage_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_struct$_Investor_$25559_storage_$dyn_storage_ptr_$", + "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_struct$_Investor_$27525_storage_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_struct$_Investor_$27525_storage_$dyn_storage_ptr_$", "typeString": "function (struct Vesting.Investor storage ref[] storage pointer)" } }, - "id": 25793, + "id": 27763, "isConstant": false, "isLValue": false, "isPure": false, @@ -4238,45 +4375,45 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5746:21:16", + "src": "5830:21:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25794, + "id": 27764, "nodeType": "ExpressionStatement", - "src": "5746:21:16" + "src": "5830:21:18" }, { "expression": { - "id": 25799, + "id": 27769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 25795, + "id": 27765, "name": "investors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25563, - "src": "5778:9:16", + "referencedDeclaration": 27529, + "src": "5862:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 25797, + "id": 27767, "indexExpression": { - "id": 25796, + "id": 27766, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25742, - "src": "5788:8:16", + "referencedDeclaration": 27712, + "src": "5872:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4287,7 +4424,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5778:19:16", + "src": "5862:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4297,40 +4434,40 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 25798, + "id": 27768, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5800:5:16", + "src": "5884:5:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "5778:27:16", + "src": "5862:27:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 25800, + "id": 27770, "nodeType": "ExpressionStatement", - "src": "5778:27:16" + "src": "5862:27:18" }, { "eventCall": { "arguments": [ { - "id": 25802, + "id": 27772, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25742, - "src": "5839:8:16", + "referencedDeclaration": 27712, + "src": "5923:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4344,18 +4481,18 @@ "typeString": "address" } ], - "id": 25801, + "id": 27771, "name": "InvestorRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25612, - "src": "5823:15:16", + "referencedDeclaration": 27578, + "src": "5907:15:18", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 25803, + "id": 27773, "isConstant": false, "isLValue": false, "isPure": false, @@ -4364,23 +4501,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5823:25:16", + "src": "5907:25:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25804, + "id": 27774, "nodeType": "EmitStatement", - "src": "5818:30:16" + "src": "5902:30:18" } ] }, "documentation": { - "id": 25740, + "id": 27710, "nodeType": "StructuredDocumentation", - "src": "5171:150:16", + "src": "5255:150:18", "text": "@notice This function removes an investor from the investorLibrary.\n @param _account the wallet address of investor that is being removed." }, "functionSelector": "42714978", @@ -4389,37 +4526,37 @@ "modifiers": [ { "arguments": [], - "id": 25745, + "id": 27715, "kind": "modifierInvocation", "modifierName": { - "id": 25744, + "id": 27714, "name": "onlyOwner", "nameLocations": [ - "5378:9:16" + "5462:9:18" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26206, - "src": "5378:9:16" + "referencedDeclaration": 28185, + "src": "5462:9:18" }, "nodeType": "ModifierInvocation", - "src": "5378:11:16" + "src": "5462:11:18" } ], "name": "removeInvestor", - "nameLocation": "5336:14:16", + "nameLocation": "5420:14:18", "parameters": { - "id": 25743, + "id": 27713, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25742, + "id": 27712, "mutability": "mutable", "name": "_account", - "nameLocation": "5359:8:16", + "nameLocation": "5443:8:18", "nodeType": "VariableDeclaration", - "scope": 25806, - "src": "5351:16:16", + "scope": 27776, + "src": "5435:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4427,10 +4564,10 @@ "typeString": "address" }, "typeName": { - "id": 25741, + "id": 27711, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5351:7:16", + "src": "5435:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4440,35 +4577,35 @@ "visibility": "internal" } ], - "src": "5350:18:16" + "src": "5434:18:18" }, "returnParameters": { - "id": 25746, + "id": 27716, "nodeType": "ParameterList", "parameters": [], - "src": "5390:0:16" + "src": "5474:0:18" }, - "scope": 26117, + "scope": 28096, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 25831, + "id": 27801, "nodeType": "FunctionDefinition", - "src": "6024:261:16", + "src": "6108:261:18", "nodes": [], "body": { - "id": 25830, + "id": 27800, "nodeType": "Block", - "src": "6070:215:16", + "src": "6154:215:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 25814, + "id": 27784, "isConstant": false, "isLValue": false, "isPure": false, @@ -4476,14 +4613,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "6089:15:16", + "src": "6173:15:18", "subExpression": { - "id": 25813, + "id": 27783, "name": "vestingEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25547, - "src": "6090:14:16", + "referencedDeclaration": 27511, + "src": "6174:14:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4496,14 +4633,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a656e61626c6556657374696e6728292076657374696e6720697320616c726561647920656e61626c6564", - "id": 25815, + "id": 27785, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6106:57:16", + "src": "6190:57:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b81e7806853eebb1dd20d036cf5def1e03a3259047e4c17a645085fd705441b0", "typeString": "literal_string \"Vesting.sol::enableVesting() vesting is already enabled\"" @@ -4522,7 +4659,7 @@ "typeString": "literal_string \"Vesting.sol::enableVesting() vesting is already enabled\"" } ], - "id": 25812, + "id": 27782, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4530,13 +4667,13 @@ -18 ], "referencedDeclaration": -18, - "src": "6081:7:16", + "src": "6165:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 25816, + "id": 27786, "isConstant": false, "isLValue": false, "isPure": false, @@ -4545,31 +4682,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6081:83:16", + "src": "6165:83:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25817, + "id": 27787, "nodeType": "ExpressionStatement", - "src": "6081:83:16" + "src": "6165:83:18" }, { "expression": { - "id": 25820, + "id": 27790, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 25818, + "id": 27788, "name": "vestingEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25547, - "src": "6177:14:16", + "referencedDeclaration": 27511, + "src": "6261:14:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4579,44 +4716,44 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 25819, + "id": 27789, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6194:4:16", + "src": "6278:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "6177:21:16", + "src": "6261:21:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 25821, + "id": 27791, "nodeType": "ExpressionStatement", - "src": "6177:21:16" + "src": "6261:21:18" }, { "expression": { - "id": 25825, + "id": 27795, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 25822, + "id": 27792, "name": "vestingStartUnix", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25544, - "src": "6209:16:16", + "referencedDeclaration": 27508, + "src": "6293:16:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4626,58 +4763,58 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 25823, + "id": 27793, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "6228:5:16", + "src": "6312:5:18", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 25824, + "id": 27794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6234:9:16", + "memberLocation": "6318:9:18", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "6228:15:16", + "src": "6312:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6209:34:16", + "src": "6293:34:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 25826, + "id": 27796, "nodeType": "ExpressionStatement", - "src": "6209:34:16" + "src": "6293:34:18" }, { "eventCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 25827, + "id": 27797, "name": "VestingEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25624, - "src": "6261:14:16", + "referencedDeclaration": 27590, + "src": "6345:14:18", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 25828, + "id": 27798, "isConstant": false, "isLValue": false, "isPure": false, @@ -4686,23 +4823,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6261:16:16", + "src": "6345:16:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25829, + "id": 27799, "nodeType": "EmitStatement", - "src": "6256:21:16" + "src": "6340:21:18" } ] }, "documentation": { - "id": 25807, + "id": 27777, "nodeType": "StructuredDocumentation", - "src": "5864:154:16", + "src": "5948:154:18", "text": "@notice This function starts the vesting period.\n @dev will set start time to vestingStartUnix.\n will set vestingEnabled to true." }, "functionSelector": "5b904cb7", @@ -4711,50 +4848,50 @@ "modifiers": [ { "arguments": [], - "id": 25810, + "id": 27780, "kind": "modifierInvocation", "modifierName": { - "id": 25809, + "id": 27779, "name": "onlyOwner", "nameLocations": [ - "6058:9:16" + "6142:9:18" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26206, - "src": "6058:9:16" + "referencedDeclaration": 28185, + "src": "6142:9:18" }, "nodeType": "ModifierInvocation", - "src": "6058:11:16" + "src": "6142:11:18" } ], "name": "enableVesting", - "nameLocation": "6033:13:16", + "nameLocation": "6117:13:18", "parameters": { - "id": 25808, + "id": 27778, "nodeType": "ParameterList", "parameters": [], - "src": "6046:2:16" + "src": "6130:2:18" }, "returnParameters": { - "id": 25811, + "id": 27781, "nodeType": "ParameterList", "parameters": [], - "src": "6070:0:16" + "src": "6154:0:18" }, - "scope": 26117, + "scope": 28096, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 25899, + "id": 27869, "nodeType": "FunctionDefinition", - "src": "6472:636:16", + "src": "6556:636:18", "nodes": [], "body": { - "id": 25898, + "id": 27868, "nodeType": "Block", - "src": "6531:577:16", + "src": "6615:577:18", "nodes": [], "statements": [ { @@ -4765,18 +4902,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 25842, + "id": 27812, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25840, + "id": 27810, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25834, - "src": "6550:5:16", + "referencedDeclaration": 27804, + "src": "6634:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4785,18 +4922,18 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 25841, + "id": 27811, "name": "proveToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25541, - "src": "6559:10:16", + "referencedDeclaration": 27505, + "src": "6643:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6550:19:16", + "src": "6634:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4804,14 +4941,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a7769746864726177457263323028292063616e6e6f74207769746864726177202450524f564520746f6b656e", - "id": 25843, + "id": 27813, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6571:59:16", + "src": "6655:59:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_75db5b4aa55e9f0b03e4a8c070f8f66290a98338aaae1576bb806eef1f0080d2", "typeString": "literal_string \"Vesting.sol::withdrawErc20() cannot withdraw $PROVE token\"" @@ -4830,7 +4967,7 @@ "typeString": "literal_string \"Vesting.sol::withdrawErc20() cannot withdraw $PROVE token\"" } ], - "id": 25839, + "id": 27809, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4838,13 +4975,13 @@ -18 ], "referencedDeclaration": -18, - "src": "6542:7:16", + "src": "6626:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 25844, + "id": 27814, "isConstant": false, "isLValue": false, "isPure": false, @@ -4853,16 +4990,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6542:89:16", + "src": "6626:89:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25845, + "id": 27815, "nodeType": "ExpressionStatement", - "src": "6542:89:16" + "src": "6626:89:18" }, { "expression": { @@ -4872,18 +5009,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 25852, + "id": 27822, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25847, + "id": 27817, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25834, - "src": "6650:5:16", + "referencedDeclaration": 27804, + "src": "6734:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4895,14 +5032,14 @@ "arguments": [ { "hexValue": "30", - "id": 25850, + "id": 27820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6667:1:16", + "src": "6751:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4917,26 +5054,26 @@ "typeString": "int_const 0" } ], - "id": 25849, + "id": 27819, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6659:7:16", + "src": "6743:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 25848, + "id": 27818, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6659:7:16", + "src": "6743:7:18", "typeDescriptions": {} } }, - "id": 25851, + "id": 27821, "isConstant": false, "isLValue": false, "isPure": true, @@ -4945,14 +5082,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6659:10:16", + "src": "6743:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6650:19:16", + "src": "6734:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4960,14 +5097,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a77697468647261774572633230282920746f6b656e2063616e6e6f742062652061646472657373283029", - "id": 25853, + "id": 27823, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6671:57:16", + "src": "6755:57:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_29e76f784f984a6a07713ea53163c68fa39fa9a65b7a983cda7f9b66495bef31", "typeString": "literal_string \"Vesting.sol::withdrawErc20() token cannot be address(0)\"" @@ -4986,7 +5123,7 @@ "typeString": "literal_string \"Vesting.sol::withdrawErc20() token cannot be address(0)\"" } ], - "id": 25846, + "id": 27816, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4994,13 +5131,13 @@ -18 ], "referencedDeclaration": -18, - "src": "6642:7:16", + "src": "6726:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 25854, + "id": 27824, "isConstant": false, "isLValue": false, "isPure": false, @@ -5009,31 +5146,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6642:87:16", + "src": "6726:87:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25855, + "id": 27825, "nodeType": "ExpressionStatement", - "src": "6642:87:16" + "src": "6726:87:18" }, { "assignments": [ - 25857 + 27827 ], "declarations": [ { "constant": false, - "id": 25857, + "id": 27827, "mutability": "mutable", "name": "balance", - "nameLocation": "6750:7:16", + "nameLocation": "6834:7:18", "nodeType": "VariableDeclaration", - "scope": 25898, - "src": "6742:15:16", + "scope": 27868, + "src": "6826:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5041,10 +5178,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25856, + "id": 27826, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6742:7:16", + "src": "6826:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5053,20 +5190,20 @@ "visibility": "internal" } ], - "id": 25867, + "id": 27837, "initialValue": { "arguments": [ { "arguments": [ { - "id": 25864, + "id": 27834, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "6792:4:16", + "src": "6876:4:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26117", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -5074,30 +5211,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26117", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 25863, + "id": 27833, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6784:7:16", + "src": "6868:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 25862, + "id": 27832, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6784:7:16", + "src": "6868:7:18", "typeDescriptions": {} } }, - "id": 25865, + "id": 27835, "isConstant": false, "isLValue": false, "isPure": false, @@ -5106,7 +5243,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6784:13:16", + "src": "6868:13:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5124,12 +5261,12 @@ "expression": { "arguments": [ { - "id": 25859, + "id": 27829, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25834, - "src": "6767:5:16", + "referencedDeclaration": 27804, + "src": "6851:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5143,18 +5280,18 @@ "typeString": "address" } ], - "id": 25858, + "id": 27828, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "6760:6:16", + "referencedDeclaration": 29158, + "src": "6844:6:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 25860, + "id": 27830, "isConstant": false, "isLValue": false, "isPure": false, @@ -5163,29 +5300,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6760:13:16", + "src": "6844:13:18", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 25861, + "id": 27831, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6774:9:16", + "memberLocation": "6858:9:18", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26364, - "src": "6760:23:16", + "referencedDeclaration": 29097, + "src": "6844:23:18", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 25866, + "id": 27836, "isConstant": false, "isLValue": false, "isPure": false, @@ -5194,7 +5331,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6760:38:16", + "src": "6844:38:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5202,7 +5339,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6742:56:16" + "src": "6826:56:18" }, { "expression": { @@ -5212,18 +5349,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25871, + "id": 27841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25869, + "id": 27839, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25857, - "src": "6817:7:16", + "referencedDeclaration": 27827, + "src": "6901:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5233,21 +5370,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 25870, + "id": 27840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6827:1:16", + "src": "6911:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "6817:11:16", + "src": "6901:11:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5255,14 +5392,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a77697468647261774572633230282920696e73756666696369656e7420746f6b656e2062616c616e6365", - "id": 25872, + "id": 27842, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6830:57:16", + "src": "6914:57:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_85892f03ec8e97515a01b84c9239dbced7e62306353ae22f1c016c668c87f26e", "typeString": "literal_string \"Vesting.sol::withdrawErc20() insufficient token balance\"" @@ -5281,7 +5418,7 @@ "typeString": "literal_string \"Vesting.sol::withdrawErc20() insufficient token balance\"" } ], - "id": 25868, + "id": 27838, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5289,13 +5426,13 @@ -18 ], "referencedDeclaration": -18, - "src": "6809:7:16", + "src": "6893:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 25873, + "id": 27843, "isConstant": false, "isLValue": false, "isPure": false, @@ -5304,31 +5441,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6809:79:16", + "src": "6893:79:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25874, + "id": 27844, "nodeType": "ExpressionStatement", - "src": "6809:79:16" + "src": "6893:79:18" }, { "assignments": [ - 25876 + 27846 ], "declarations": [ { "constant": false, - "id": 25876, + "id": 27846, "mutability": "mutable", "name": "success", - "nameLocation": "6906:7:16", + "nameLocation": "6990:7:18", "nodeType": "VariableDeclaration", - "scope": 25898, - "src": "6901:12:16", + "scope": 27868, + "src": "6985:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5336,10 +5473,10 @@ "typeString": "bool" }, "typeName": { - "id": 25875, + "id": 27845, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6901:4:16", + "src": "6985:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5348,25 +5485,25 @@ "visibility": "internal" } ], - "id": 25885, + "id": 27855, "initialValue": { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], - "id": 25881, + "id": 27851, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26192, - "src": "6939:5:16", + "referencedDeclaration": 28171, + "src": "7023:5:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 25882, + "id": 27852, "isConstant": false, "isLValue": false, "isPure": false, @@ -5375,7 +5512,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6939:7:16", + "src": "7023:7:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5383,12 +5520,12 @@ } }, { - "id": 25883, + "id": 27853, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25857, - "src": "6948:7:16", + "referencedDeclaration": 27827, + "src": "7032:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5409,12 +5546,12 @@ "expression": { "arguments": [ { - "id": 25878, + "id": 27848, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25834, - "src": "6923:5:16", + "referencedDeclaration": 27804, + "src": "7007:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5428,18 +5565,18 @@ "typeString": "address" } ], - "id": 25877, + "id": 27847, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26425, - "src": "6916:6:16", + "referencedDeclaration": 29158, + "src": "7000:6:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26425_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 25879, + "id": 27849, "isConstant": false, "isLValue": false, "isPure": false, @@ -5448,29 +5585,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6916:13:16", + "src": "7000:13:18", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26425", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 25880, + "id": 27850, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6930:8:16", + "memberLocation": "7014:8:18", "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 26374, - "src": "6916:22:16", + "referencedDeclaration": 29107, + "src": "7000:22:18", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 25884, + "id": 27854, "isConstant": false, "isLValue": false, "isPure": false, @@ -5479,7 +5616,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6916:40:16", + "src": "7000:40:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5487,18 +5624,18 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6901:55:16" + "src": "6985:55:18" }, { "expression": { "arguments": [ { - "id": 25887, + "id": 27857, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25876, - "src": "6975:7:16", + "referencedDeclaration": 27846, + "src": "7059:7:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5506,14 +5643,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a776974686472617745726332302829207472616e7366657220756e7375636365737366756c", - "id": 25888, + "id": 27858, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6984:52:16", + "src": "7068:52:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_15e8b103591986e2799c2dc971bdc5cdfd784ab9acde7b421a1ef4ce4227abca", "typeString": "literal_string \"Vesting.sol::withdrawErc20() transfer unsuccessful\"" @@ -5532,7 +5669,7 @@ "typeString": "literal_string \"Vesting.sol::withdrawErc20() transfer unsuccessful\"" } ], - "id": 25886, + "id": 27856, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5540,13 +5677,13 @@ -18 ], "referencedDeclaration": -18, - "src": "6967:7:16", + "src": "7051:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 25889, + "id": 27859, "isConstant": false, "isLValue": false, "isPure": false, @@ -5555,39 +5692,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6967:70:16", + "src": "7051:70:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25890, + "id": 27860, "nodeType": "ExpressionStatement", - "src": "6967:70:16" + "src": "7051:70:18" }, { "eventCall": { "arguments": [ { - "id": 25892, + "id": 27862, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25834, - "src": "7076:5:16", + "referencedDeclaration": 27804, + "src": "7160:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 25893, + "id": 27863, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25857, - "src": "7083:7:16", + "referencedDeclaration": 27827, + "src": "7167:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5597,18 +5734,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 25894, + "id": 27864, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26192, - "src": "7092:5:16", + "referencedDeclaration": 28171, + "src": "7176:5:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 25895, + "id": 27865, "isConstant": false, "isLValue": false, "isPure": false, @@ -5617,7 +5754,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7092:7:16", + "src": "7176:7:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5640,18 +5777,18 @@ "typeString": "address" } ], - "id": 25891, + "id": 27861, "name": "Erc20TokensWithdrawn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25621, - "src": "7055:20:16", + "referencedDeclaration": 27587, + "src": "7139:20:18", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (address,uint256,address)" } }, - "id": 25896, + "id": 27866, "isConstant": false, "isLValue": false, "isPure": false, @@ -5660,23 +5797,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7055:45:16", + "src": "7139:45:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 25897, + "id": 27867, "nodeType": "EmitStatement", - "src": "7050:50:16" + "src": "7134:50:18" } ] }, "documentation": { - "id": 25832, + "id": 27802, "nodeType": "StructuredDocumentation", - "src": "6293:173:16", + "src": "6377:173:18", "text": "@notice Is used to remove ERC20 tokens from the contract.\n @dev token address cannot be $PROVE\n @param token contract address of token we wish to remove." }, "functionSelector": "c7e42b1b", @@ -5685,37 +5822,37 @@ "modifiers": [ { "arguments": [], - "id": 25837, + "id": 27807, "kind": "modifierInvocation", "modifierName": { - "id": 25836, + "id": 27806, "name": "onlyOwner", "nameLocations": [ - "6519:9:16" + "6603:9:18" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26206, - "src": "6519:9:16" + "referencedDeclaration": 28185, + "src": "6603:9:18" }, "nodeType": "ModifierInvocation", - "src": "6519:11:16" + "src": "6603:11:18" } ], "name": "withdrawErc20", - "nameLocation": "6481:13:16", + "nameLocation": "6565:13:18", "parameters": { - "id": 25835, + "id": 27805, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25834, + "id": 27804, "mutability": "mutable", "name": "token", - "nameLocation": "6503:5:16", + "nameLocation": "6587:5:18", "nodeType": "VariableDeclaration", - "scope": 25899, - "src": "6495:13:16", + "scope": 27869, + "src": "6579:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5723,10 +5860,10 @@ "typeString": "address" }, "typeName": { - "id": 25833, + "id": 27803, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6495:7:16", + "src": "6579:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5736,28 +5873,116 @@ "visibility": "internal" } ], - "src": "6494:15:16" + "src": "6578:15:18" }, "returnParameters": { - "id": 25838, + "id": 27808, "nodeType": "ParameterList", "parameters": [], - "src": "6531:0:16" + "src": "6615:0:18" }, - "scope": 26117, + "scope": 28096, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 26000, + "id": 27878, + "nodeType": "FunctionDefinition", + "src": "7390:105:18", + "nodes": [], + "body": { + "id": 27877, + "nodeType": "Block", + "src": "7452:43:18", + "nodes": [], + "statements": [ + { + "expression": { + "id": 27875, + "name": "totalTokensToVest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27514, + "src": "7470:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 27874, + "id": 27876, + "nodeType": "Return", + "src": "7463:24:18" + } + ] + }, + "documentation": { + "id": 27870, + "nodeType": "StructuredDocumentation", + "src": "7243:141:18", + "text": "@notice This function returns the amount of total tokens this contract will vest\n @return uint256 total amount of tokens to vest." + }, + "functionSelector": "08ac7624", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAllVestedTokens", + "nameLocation": "7399:18:18", + "parameters": { + "id": 27871, + "nodeType": "ParameterList", + "parameters": [], + "src": "7417:2:18" + }, + "returnParameters": { + "id": 27874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27873, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27878, + "src": "7443:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27872, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7443:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7442:9:18" + }, + "scope": 28096, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 27979, "nodeType": "FunctionDefinition", - "src": "7352:949:16", + "src": "7696:949:18", "nodes": [], "body": { - "id": 25999, + "id": 27978, "nodeType": "Block", - "src": "7426:875:16", + "src": "7770:875:18", "nodes": [], "statements": [ { @@ -5766,32 +5991,32 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 25911, + "id": 27890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 25907, + "id": 27886, "name": "investors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25563, - "src": "7441:9:16", + "referencedDeclaration": 27529, + "src": "7785:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 25909, + "id": 27888, "indexExpression": { - "id": 25908, + "id": 27887, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25902, - "src": "7451:8:16", + "referencedDeclaration": 27881, + "src": "7795:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5802,7 +6027,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7441:19:16", + "src": "7785:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5811,74 +6036,74 @@ "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { - "id": 25910, + "id": 27889, "name": "vestingEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25547, - "src": "7464:14:16", + "referencedDeclaration": 27511, + "src": "7808:14:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "7441:37:16", + "src": "7785:37:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 25997, + "id": 27976, "nodeType": "Block", - "src": "8259:35:16", + "src": "8603:35:18", "statements": [ { "expression": { "hexValue": "30", - "id": 25995, + "id": 27974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8281:1:16", + "src": "8625:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "functionReturnParameters": 25906, - "id": 25996, + "functionReturnParameters": 27885, + "id": 27975, "nodeType": "Return", - "src": "8274:8:16" + "src": "8618:8:18" } ] }, - "id": 25998, + "id": 27977, "nodeType": "IfStatement", - "src": "7437:857:16", + "src": "7781:857:18", "trueBody": { - "id": 25994, + "id": 27973, "nodeType": "Block", - "src": "7480:764:16", + "src": "7824:764:18", "statements": [ { "assignments": [ - 25913 + 27892 ], "declarations": [ { "constant": false, - "id": 25913, + "id": 27892, "mutability": "mutable", "name": "idx", - "nameLocation": "7505:3:16", + "nameLocation": "7849:3:18", "nodeType": "VariableDeclaration", - "scope": 25994, - "src": "7497:11:16", + "scope": 27973, + "src": "7841:11:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5886,10 +6111,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25912, + "id": 27891, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7497:7:16", + "src": "7841:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5898,16 +6123,16 @@ "visibility": "internal" } ], - "id": 25917, + "id": 27896, "initialValue": { "arguments": [ { - "id": 25915, + "id": 27894, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25902, - "src": "7526:8:16", + "referencedDeclaration": 27881, + "src": "7870:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5921,18 +6146,18 @@ "typeString": "address" } ], - "id": 25914, + "id": 27893, "name": "locateInvestor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26105, - "src": "7511:14:16", + "referencedDeclaration": 28084, + "src": "7855:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 25916, + "id": 27895, "isConstant": false, "isLValue": false, "isPure": false, @@ -5941,7 +6166,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7511:24:16", + "src": "7855:24:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5949,22 +6174,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7497:38:16" + "src": "7841:38:18" }, { "assignments": [ - 25919 + 27898 ], "declarations": [ { "constant": false, - "id": 25919, + "id": 27898, "mutability": "mutable", "name": "tokensToVest", - "nameLocation": "7557:12:16", + "nameLocation": "7901:12:18", "nodeType": "VariableDeclaration", - "scope": 25994, - "src": "7552:17:16", + "scope": 27973, + "src": "7896:17:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5972,10 +6197,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25918, + "id": 27897, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7552:4:16", + "src": "7896:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5984,16 +6209,16 @@ "visibility": "internal" } ], - "id": 25923, + "id": 27902, "initialValue": { "arguments": [ { - "id": 25921, + "id": 27900, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25902, - "src": "7588:8:16", + "referencedDeclaration": 27881, + "src": "7932:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6007,18 +6232,18 @@ "typeString": "address" } ], - "id": 25920, + "id": 27899, "name": "getTokensToVest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26056, - "src": "7572:15:16", + "referencedDeclaration": 28035, + "src": "7916:15:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 25922, + "id": 27901, "isConstant": false, "isLValue": false, "isPure": false, @@ -6027,7 +6252,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7572:25:16", + "src": "7916:25:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6035,7 +6260,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7552:45:16" + "src": "7896:45:18" }, { "condition": { @@ -6043,7 +6268,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25929, + "id": 27908, "isConstant": false, "isLValue": false, "isPure": false, @@ -6051,25 +6276,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 25924, + "id": 27903, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "7618:15:16", + "referencedDeclaration": 27518, + "src": "7962:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 25926, + "id": 27905, "indexExpression": { - "id": 25925, + "id": 27904, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25913, - "src": "7634:3:16", + "referencedDeclaration": 27892, + "src": "7978:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6080,22 +6305,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7618:20:16", + "src": "7962:20:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage", + "typeIdentifier": "t_struct$_Investor_$27525_storage", "typeString": "struct Vesting.Investor storage ref" } }, - "id": 25927, + "id": 27906, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7639:13:16", + "memberLocation": "7983:13:18", "memberName": "tokensClaimed", "nodeType": "MemberAccess", - "referencedDeclaration": 25558, - "src": "7618:34:16", + "referencedDeclaration": 27524, + "src": "7962:34:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6104,70 +6329,70 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 25928, + "id": 27907, "name": "tokensToVest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25919, - "src": "7656:12:16", + "referencedDeclaration": 27898, + "src": "8000:12:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7618:50:16", + "src": "7962:50:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 25933, + "id": 27912, "nodeType": "IfStatement", - "src": "7614:99:16", + "src": "7958:99:18", "trueBody": { - "id": 25932, + "id": 27911, "nodeType": "Block", - "src": "7670:43:16", + "src": "8014:43:18", "statements": [ { "expression": { "hexValue": "30", - "id": 25930, + "id": 27909, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7696:1:16", + "src": "8040:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "functionReturnParameters": 25906, - "id": 25931, + "functionReturnParameters": 27885, + "id": 27910, "nodeType": "Return", - "src": "7689:8:16" + "src": "8033:8:18" } ] } }, { "assignments": [ - 25935 + 27914 ], "declarations": [ { "constant": false, - "id": 25935, + "id": 27914, "mutability": "mutable", "name": "monthsPassed", - "nameLocation": "7734:12:16", + "nameLocation": "8078:12:18", "nodeType": "VariableDeclaration", - "scope": 25994, - "src": "7729:17:16", + "scope": 27973, + "src": "8073:17:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6175,10 +6400,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25934, + "id": 27913, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7729:4:16", + "src": "8073:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6187,7 +6412,7 @@ "visibility": "internal" } ], - "id": 25944, + "id": 27923, "initialValue": { "components": [ { @@ -6195,7 +6420,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25942, + "id": 27921, "isConstant": false, "isLValue": false, "isPure": false, @@ -6207,33 +6432,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25939, + "id": 27918, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 25936, + "id": 27915, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "7751:5:16", + "src": "8095:5:18", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 25937, + "id": 27916, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7757:9:16", + "memberLocation": "8101:9:18", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "7751:15:16", + "src": "8095:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6242,32 +6467,32 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 25938, + "id": 27917, "name": "vestingStartUnix", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25544, - "src": "7769:16:16", + "referencedDeclaration": 27508, + "src": "8113:16:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7751:34:16", + "src": "8095:34:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 25940, + "id": 27919, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7750:36:16", + "src": "8094:36:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6277,14 +6502,14 @@ "operator": "/", "rightExpression": { "hexValue": "34", - "id": 25941, + "id": 27920, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7789:7:16", + "src": "8133:7:18", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_2419200_by_1", @@ -6292,43 +6517,43 @@ }, "value": "4" }, - "src": "7750:46:16", + "src": "8094:46:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 25943, + "id": 27922, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7749:48:16", + "src": "8093:48:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "7729:68:16" + "src": "8073:68:18" }, { "assignments": [ - 25946 + 27925 ], "declarations": [ { "constant": false, - "id": 25946, + "id": 27925, "mutability": "mutable", "name": "amountToClaim", - "nameLocation": "7818:13:16", + "nameLocation": "8162:13:18", "nodeType": "VariableDeclaration", - "scope": 25994, - "src": "7813:18:16", + "scope": 27973, + "src": "8157:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6336,10 +6561,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25945, + "id": 27924, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7813:4:16", + "src": "8157:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6348,13 +6573,13 @@ "visibility": "internal" } ], - "id": 25963, + "id": 27942, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25962, + "id": 27941, "isConstant": false, "isLValue": false, "isPure": false, @@ -6366,7 +6591,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25951, + "id": 27930, "isConstant": false, "isLValue": false, "isPure": false, @@ -6376,18 +6601,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25949, + "id": 27928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25947, + "id": 27926, "name": "tokensToVest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25919, - "src": "7835:12:16", + "referencedDeclaration": 27898, + "src": "8179:12:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6397,21 +6622,21 @@ "operator": "*", "rightExpression": { "hexValue": "3132", - "id": 25948, + "id": 27927, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7850:2:16", + "src": "8194:2:18", "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", "typeString": "int_const 12" }, "value": "12" }, - "src": "7835:17:16", + "src": "8179:17:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6421,35 +6646,35 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 25950, + "id": 27929, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7855:3:16", + "src": "8199:3:18", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "7835:23:16", + "src": "8179:23:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 25952, + "id": 27931, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7834:25:16", + "src": "8178:25:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6464,18 +6689,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25960, + "id": 27939, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25953, + "id": 27932, "name": "monthsPassed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25935, - "src": "7863:12:16", + "referencedDeclaration": 27914, + "src": "8207:12:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6490,7 +6715,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25958, + "id": 27937, "isConstant": false, "isLValue": false, "isPure": false, @@ -6500,18 +6725,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25956, + "id": 27935, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25954, + "id": 27933, "name": "tokensToVest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25919, - "src": "7879:12:16", + "referencedDeclaration": 27898, + "src": "8223:12:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6521,21 +6746,21 @@ "operator": "*", "rightExpression": { "hexValue": "38", - "id": 25955, + "id": 27934, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7894:1:16", + "src": "8238:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "7879:16:16", + "src": "8223:16:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6545,68 +6770,68 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 25957, + "id": 27936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7898:3:16", + "src": "8242:3:18", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "7879:22:16", + "src": "8223:22:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 25959, + "id": 27938, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7878:24:16", + "src": "8222:24:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7863:39:16", + "src": "8207:39:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 25961, + "id": 27940, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7862:41:16", + "src": "8206:41:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7834:69:16", + "src": "8178:69:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "7813:90:16" + "src": "8157:90:18" }, { "condition": { @@ -6614,7 +6839,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 25970, + "id": 27949, "isConstant": false, "isLValue": false, "isPure": false, @@ -6624,18 +6849,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25966, + "id": 27945, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25964, + "id": 27943, "name": "amountToClaim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25946, - "src": "7924:13:16", + "referencedDeclaration": 27925, + "src": "8268:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6644,18 +6869,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 25965, + "id": 27944, "name": "tokensToVest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25919, - "src": "7940:12:16", + "referencedDeclaration": 27898, + "src": "8284:12:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7924:28:16", + "src": "8268:28:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6668,18 +6893,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25969, + "id": 27948, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25967, + "id": 27946, "name": "monthsPassed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25935, - "src": "7956:12:16", + "referencedDeclaration": 27914, + "src": "8300:12:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6689,51 +6914,51 @@ "operator": ">=", "rightExpression": { "hexValue": "3131", - "id": 25968, + "id": 27947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7972:2:16", + "src": "8316:2:18", "typeDescriptions": { "typeIdentifier": "t_rational_11_by_1", "typeString": "int_const 11" }, "value": "11" }, - "src": "7956:18:16", + "src": "8300:18:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "7924:50:16", + "src": "8268:50:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 25990, + "id": 27969, "nodeType": "Block", - "src": "8095:101:16", + "src": "8439:101:18", "statements": [ { "expression": { - "id": 25988, + "id": 27967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 25981, + "id": 27960, "name": "amountToClaim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25946, - "src": "8114:13:16", + "referencedDeclaration": 27925, + "src": "8458:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6746,18 +6971,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25987, + "id": 27966, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25982, + "id": 27961, "name": "amountToClaim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25946, - "src": "8130:13:16", + "referencedDeclaration": 27925, + "src": "8474:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6768,25 +6993,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 25983, + "id": 27962, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "8146:15:16", + "referencedDeclaration": 27518, + "src": "8490:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 25985, + "id": 27964, "indexExpression": { - "id": 25984, + "id": 27963, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25913, - "src": "8162:3:16", + "referencedDeclaration": 27892, + "src": "8506:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6797,67 +7022,67 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8146:20:16", + "src": "8490:20:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage", + "typeIdentifier": "t_struct$_Investor_$27525_storage", "typeString": "struct Vesting.Investor storage ref" } }, - "id": 25986, + "id": 27965, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8167:13:16", + "memberLocation": "8511:13:18", "memberName": "tokensClaimed", "nodeType": "MemberAccess", - "referencedDeclaration": 25558, - "src": "8146:34:16", + "referencedDeclaration": 27524, + "src": "8490:34:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8130:50:16", + "src": "8474:50:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8114:66:16", + "src": "8458:66:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 25989, + "id": 27968, "nodeType": "ExpressionStatement", - "src": "8114:66:16" + "src": "8458:66:18" } ] }, - "id": 25991, + "id": 27970, "nodeType": "IfStatement", - "src": "7920:276:16", + "src": "8264:276:18", "trueBody": { - "id": 25980, + "id": 27959, "nodeType": "Block", - "src": "7976:100:16", + "src": "8320:100:18", "statements": [ { "expression": { - "id": 25978, + "id": 27957, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 25971, + "id": 27950, "name": "amountToClaim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25946, - "src": "7995:13:16", + "referencedDeclaration": 27925, + "src": "8339:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6870,18 +7095,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 25977, + "id": 27956, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 25972, + "id": 27951, "name": "tokensToVest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25919, - "src": "8011:12:16", + "referencedDeclaration": 27898, + "src": "8355:12:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6892,25 +7117,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 25973, + "id": 27952, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "8026:15:16", + "referencedDeclaration": 27518, + "src": "8370:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 25975, + "id": 27954, "indexExpression": { - "id": 25974, + "id": 27953, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25913, - "src": "8042:3:16", + "referencedDeclaration": 27892, + "src": "8386:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6921,63 +7146,63 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8026:20:16", + "src": "8370:20:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage", + "typeIdentifier": "t_struct$_Investor_$27525_storage", "typeString": "struct Vesting.Investor storage ref" } }, - "id": 25976, + "id": 27955, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8047:13:16", + "memberLocation": "8391:13:18", "memberName": "tokensClaimed", "nodeType": "MemberAccess", - "referencedDeclaration": 25558, - "src": "8026:34:16", + "referencedDeclaration": 27524, + "src": "8370:34:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8011:49:16", + "src": "8355:49:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7995:65:16", + "src": "8339:65:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 25979, + "id": 27958, "nodeType": "ExpressionStatement", - "src": "7995:65:16" + "src": "8339:65:18" } ] } }, { "expression": { - "id": 25992, + "id": 27971, "name": "amountToClaim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25946, - "src": "8219:13:16", + "referencedDeclaration": 27925, + "src": "8563:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 25906, - "id": 25993, + "functionReturnParameters": 27885, + "id": 27972, "nodeType": "Return", - "src": "8212:20:16" + "src": "8556:20:18" } ] } @@ -6985,9 +7210,9 @@ ] }, "documentation": { - "id": 25900, + "id": 27879, "nodeType": "StructuredDocumentation", - "src": "7159:187:16", + "src": "7503:187:18", "text": "@notice This function returns the amount of tokens to claim for a specified investor.\n @param _account address of investor.\n @return uint256 amount of tokens to claim." }, "functionSelector": "0bca8bcd", @@ -6995,20 +7220,20 @@ "kind": "function", "modifiers": [], "name": "getAmountToClaim", - "nameLocation": "7361:16:16", + "nameLocation": "7705:16:18", "parameters": { - "id": 25903, + "id": 27882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25902, + "id": 27881, "mutability": "mutable", "name": "_account", - "nameLocation": "7386:8:16", + "nameLocation": "7730:8:18", "nodeType": "VariableDeclaration", - "scope": 26000, - "src": "7378:16:16", + "scope": 27979, + "src": "7722:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7016,10 +7241,10 @@ "typeString": "address" }, "typeName": { - "id": 25901, + "id": 27880, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7378:7:16", + "src": "7722:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7029,21 +7254,21 @@ "visibility": "internal" } ], - "src": "7377:18:16" + "src": "7721:18:18" }, "returnParameters": { - "id": 25906, + "id": 27885, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25905, + "id": 27884, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 26000, - "src": "7417:7:16", + "scope": 27979, + "src": "7761:7:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7051,10 +7276,10 @@ "typeString": "uint256" }, "typeName": { - "id": 25904, + "id": 27883, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7417:7:16", + "src": "7761:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7063,46 +7288,46 @@ "visibility": "internal" } ], - "src": "7416:9:16" + "src": "7760:9:18" }, - "scope": 26117, + "scope": 28096, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 26028, + "id": 28007, "nodeType": "FunctionDefinition", - "src": "8502:290:16", + "src": "8846:290:18", "nodes": [], "body": { - "id": 26027, + "id": 28006, "nodeType": "Block", - "src": "8576:216:16", + "src": "8920:216:18", "nodes": [], "statements": [ { "condition": { "baseExpression": { - "id": 26008, + "id": 27987, "name": "investors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25563, - "src": "8591:9:16", + "referencedDeclaration": 27529, + "src": "8935:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 26010, + "id": 27989, "indexExpression": { - "id": 26009, + "id": 27988, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26003, - "src": "8601:8:16", + "referencedDeclaration": 27982, + "src": "8945:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7113,63 +7338,63 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8591:19:16", + "src": "8935:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 26025, + "id": 28004, "nodeType": "Block", - "src": "8750:35:16", + "src": "9094:35:18", "statements": [ { "expression": { "hexValue": "30", - "id": 26023, + "id": 28002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8772:1:16", + "src": "9116:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "functionReturnParameters": 26007, - "id": 26024, + "functionReturnParameters": 27986, + "id": 28003, "nodeType": "Return", - "src": "8765:8:16" + "src": "9109:8:18" } ] }, - "id": 26026, + "id": 28005, "nodeType": "IfStatement", - "src": "8587:198:16", + "src": "8931:198:18", "trueBody": { - "id": 26022, + "id": 28001, "nodeType": "Block", - "src": "8612:123:16", + "src": "8956:123:18", "statements": [ { "assignments": [ - 26012 + 27991 ], "declarations": [ { "constant": false, - "id": 26012, + "id": 27991, "mutability": "mutable", "name": "idx", - "nameLocation": "8637:3:16", + "nameLocation": "8981:3:18", "nodeType": "VariableDeclaration", - "scope": 26022, - "src": "8629:11:16", + "scope": 28001, + "src": "8973:11:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7177,10 +7402,10 @@ "typeString": "uint256" }, "typeName": { - "id": 26011, + "id": 27990, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8629:7:16", + "src": "8973:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7189,16 +7414,16 @@ "visibility": "internal" } ], - "id": 26016, + "id": 27995, "initialValue": { "arguments": [ { - "id": 26014, + "id": 27993, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26003, - "src": "8658:8:16", + "referencedDeclaration": 27982, + "src": "9002:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7212,18 +7437,18 @@ "typeString": "address" } ], - "id": 26013, + "id": 27992, "name": "locateInvestor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26105, - "src": "8643:14:16", + "referencedDeclaration": 28084, + "src": "8987:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 26015, + "id": 27994, "isConstant": false, "isLValue": false, "isPure": false, @@ -7232,7 +7457,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8643:24:16", + "src": "8987:24:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7240,31 +7465,31 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8629:38:16" + "src": "8973:38:18" }, { "expression": { "expression": { "baseExpression": { - "id": 26017, + "id": 27996, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "8689:15:16", + "referencedDeclaration": 27518, + "src": "9033:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 26019, + "id": 27998, "indexExpression": { - "id": 26018, + "id": 27997, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26012, - "src": "8705:3:16", + "referencedDeclaration": 27991, + "src": "9049:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7275,31 +7500,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8689:20:16", + "src": "9033:20:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage", + "typeIdentifier": "t_struct$_Investor_$27525_storage", "typeString": "struct Vesting.Investor storage ref" } }, - "id": 26020, + "id": 27999, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8710:13:16", + "memberLocation": "9054:13:18", "memberName": "tokensClaimed", "nodeType": "MemberAccess", - "referencedDeclaration": 25558, - "src": "8689:34:16", + "referencedDeclaration": 27524, + "src": "9033:34:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 26007, - "id": 26021, + "functionReturnParameters": 27986, + "id": 28000, "nodeType": "Return", - "src": "8682:41:16" + "src": "9026:41:18" } ] } @@ -7307,9 +7532,9 @@ ] }, "documentation": { - "id": 26001, + "id": 27980, "nodeType": "StructuredDocumentation", - "src": "8309:187:16", + "src": "8653:187:18", "text": "@notice This function returns the amount of tokens an investor HAS claimed.\n @param _account address of investor.\n @return uint256 amount of tokens claimed by account." }, "functionSelector": "d36862e8", @@ -7317,20 +7542,20 @@ "kind": "function", "modifiers": [], "name": "getAmountClaimed", - "nameLocation": "8511:16:16", + "nameLocation": "8855:16:18", "parameters": { - "id": 26004, + "id": 27983, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 26003, + "id": 27982, "mutability": "mutable", "name": "_account", - "nameLocation": "8536:8:16", + "nameLocation": "8880:8:18", "nodeType": "VariableDeclaration", - "scope": 26028, - "src": "8528:16:16", + "scope": 28007, + "src": "8872:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7338,10 +7563,10 @@ "typeString": "address" }, "typeName": { - "id": 26002, + "id": 27981, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8528:7:16", + "src": "8872:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7351,21 +7576,21 @@ "visibility": "internal" } ], - "src": "8527:18:16" + "src": "8871:18:18" }, "returnParameters": { - "id": 26007, + "id": 27986, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 26006, + "id": 27985, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 26028, - "src": "8567:7:16", + "scope": 28007, + "src": "8911:7:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7373,10 +7598,10 @@ "typeString": "uint256" }, "typeName": { - "id": 26005, + "id": 27984, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8567:7:16", + "src": "8911:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7385,46 +7610,46 @@ "visibility": "internal" } ], - "src": "8566:9:16" + "src": "8910:9:18" }, - "scope": 26117, + "scope": 28096, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 26056, + "id": 28035, "nodeType": "FunctionDefinition", - "src": "9005:286:16", + "src": "9349:286:18", "nodes": [], "body": { - "id": 26055, + "id": 28034, "nodeType": "Block", - "src": "9078:213:16", + "src": "9422:213:18", "nodes": [], "statements": [ { "condition": { "baseExpression": { - "id": 26036, + "id": 28015, "name": "investors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25563, - "src": "9093:9:16", + "referencedDeclaration": 27529, + "src": "9437:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 26038, + "id": 28017, "indexExpression": { - "id": 26037, + "id": 28016, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26031, - "src": "9103:8:16", + "referencedDeclaration": 28010, + "src": "9447:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7435,63 +7660,63 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9093:19:16", + "src": "9437:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 26053, + "id": 28032, "nodeType": "Block", - "src": "9249:35:16", + "src": "9593:35:18", "statements": [ { "expression": { "hexValue": "30", - "id": 26051, + "id": 28030, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9271:1:16", + "src": "9615:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "functionReturnParameters": 26035, - "id": 26052, + "functionReturnParameters": 28014, + "id": 28031, "nodeType": "Return", - "src": "9264:8:16" + "src": "9608:8:18" } ] }, - "id": 26054, + "id": 28033, "nodeType": "IfStatement", - "src": "9089:195:16", + "src": "9433:195:18", "trueBody": { - "id": 26050, + "id": 28029, "nodeType": "Block", - "src": "9114:120:16", + "src": "9458:120:18", "statements": [ { "assignments": [ - 26040 + 28019 ], "declarations": [ { "constant": false, - "id": 26040, + "id": 28019, "mutability": "mutable", "name": "idx", - "nameLocation": "9137:3:16", + "nameLocation": "9481:3:18", "nodeType": "VariableDeclaration", - "scope": 26050, - "src": "9129:11:16", + "scope": 28029, + "src": "9473:11:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7499,10 +7724,10 @@ "typeString": "uint256" }, "typeName": { - "id": 26039, + "id": 28018, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9129:7:16", + "src": "9473:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7511,16 +7736,16 @@ "visibility": "internal" } ], - "id": 26044, + "id": 28023, "initialValue": { "arguments": [ { - "id": 26042, + "id": 28021, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26031, - "src": "9158:8:16", + "referencedDeclaration": 28010, + "src": "9502:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7534,18 +7759,18 @@ "typeString": "address" } ], - "id": 26041, + "id": 28020, "name": "locateInvestor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26105, - "src": "9143:14:16", + "referencedDeclaration": 28084, + "src": "9487:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 26043, + "id": 28022, "isConstant": false, "isLValue": false, "isPure": false, @@ -7554,7 +7779,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9143:24:16", + "src": "9487:24:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7562,31 +7787,31 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9129:38:16" + "src": "9473:38:18" }, { "expression": { "expression": { "baseExpression": { - "id": 26045, + "id": 28024, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "9189:15:16", + "referencedDeclaration": 27518, + "src": "9533:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 26047, + "id": 28026, "indexExpression": { - "id": 26046, + "id": 28025, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26040, - "src": "9205:3:16", + "referencedDeclaration": 28019, + "src": "9549:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7597,31 +7822,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9189:20:16", + "src": "9533:20:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage", + "typeIdentifier": "t_struct$_Investor_$27525_storage", "typeString": "struct Vesting.Investor storage ref" } }, - "id": 26048, + "id": 28027, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9210:12:16", + "memberLocation": "9554:12:18", "memberName": "tokensToVest", "nodeType": "MemberAccess", - "referencedDeclaration": 25556, - "src": "9189:33:16", + "referencedDeclaration": 27522, + "src": "9533:33:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 26035, - "id": 26049, + "functionReturnParameters": 28014, + "id": 28028, "nodeType": "Return", - "src": "9182:40:16" + "src": "9526:40:18" } ] } @@ -7629,9 +7854,9 @@ ] }, "documentation": { - "id": 26029, + "id": 28008, "nodeType": "StructuredDocumentation", - "src": "8800:199:16", + "src": "9144:199:18", "text": "@notice This function returns an investors tokensToVest (amount of $PROVE allocated to that investor)\n @param _account address of investor\n @return uint256 investor's tokensToVest" }, "functionSelector": "88a772ef", @@ -7639,20 +7864,20 @@ "kind": "function", "modifiers": [], "name": "getTokensToVest", - "nameLocation": "9014:15:16", + "nameLocation": "9358:15:18", "parameters": { - "id": 26032, + "id": 28011, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 26031, + "id": 28010, "mutability": "mutable", "name": "_account", - "nameLocation": "9038:8:16", + "nameLocation": "9382:8:18", "nodeType": "VariableDeclaration", - "scope": 26056, - "src": "9030:16:16", + "scope": 28035, + "src": "9374:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7660,10 +7885,10 @@ "typeString": "address" }, "typeName": { - "id": 26030, + "id": 28009, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9030:7:16", + "src": "9374:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7673,21 +7898,21 @@ "visibility": "internal" } ], - "src": "9029:18:16" + "src": "9373:18:18" }, "returnParameters": { - "id": 26035, + "id": 28014, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 26034, + "id": 28013, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 26056, - "src": "9069:7:16", + "scope": 28035, + "src": "9413:7:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7695,10 +7920,10 @@ "typeString": "uint256" }, "typeName": { - "id": 26033, + "id": 28012, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9069:7:16", + "src": "9413:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7707,22 +7932,22 @@ "visibility": "internal" } ], - "src": "9068:9:16" + "src": "9412:9:18" }, - "scope": 26117, + "scope": 28096, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 26105, + "id": 28084, "nodeType": "FunctionDefinition", - "src": "9518:438:16", + "src": "9862:438:18", "nodes": [], "body": { - "id": 26104, + "id": 28083, "nodeType": "Block", - "src": "9592:364:16", + "src": "9936:364:18", "nodes": [], "statements": [ { @@ -7733,32 +7958,32 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 26069, + "id": 28048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 26065, + "id": 28044, "name": "investors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25563, - "src": "9611:9:16", + "referencedDeclaration": 27529, + "src": "9955:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 26067, + "id": 28046, "indexExpression": { - "id": 26066, + "id": 28045, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26059, - "src": "9621:8:16", + "referencedDeclaration": 28038, + "src": "9965:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7769,7 +7994,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9611:19:16", + "src": "9955:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7779,21 +8004,21 @@ "operator": "==", "rightExpression": { "hexValue": "74727565", - "id": 26068, + "id": 28047, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9634:4:16", + "src": "9978:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "9611:27:16", + "src": "9955:27:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7801,14 +8026,14 @@ }, { "hexValue": "56657374696e672e736f6c3a3a6c6f63617465496e766573746f722829206163636f756e74206973206e6f7420616e20696e766573746f72", - "id": 26070, + "id": 28049, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9640:58:16", + "src": "9984:58:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3c7d5b975a38bc7e0b558417843062c4383bc48f01017af3fb1a433530c55d36", "typeString": "literal_string \"Vesting.sol::locateInvestor() account is not an investor\"" @@ -7827,7 +8052,7 @@ "typeString": "literal_string \"Vesting.sol::locateInvestor() account is not an investor\"" } ], - "id": 26064, + "id": 28043, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -7835,13 +8060,13 @@ -18 ], "referencedDeclaration": -18, - "src": "9603:7:16", + "src": "9947:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 26071, + "id": 28050, "isConstant": false, "isLValue": false, "isPure": false, @@ -7850,31 +8075,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9603:96:16", + "src": "9947:96:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 26072, + "id": 28051, "nodeType": "ExpressionStatement", - "src": "9603:96:16" + "src": "9947:96:18" }, { "assignments": [ - 26074 + 28053 ], "declarations": [ { "constant": false, - "id": 26074, + "id": 28053, "mutability": "mutable", "name": "idx", - "nameLocation": "9720:3:16", + "nameLocation": "10064:3:18", "nodeType": "VariableDeclaration", - "scope": 26104, - "src": "9712:11:16", + "scope": 28083, + "src": "10056:11:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7882,10 +8107,10 @@ "typeString": "uint256" }, "typeName": { - "id": 26073, + "id": 28052, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9712:7:16", + "src": "10056:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7894,15 +8119,15 @@ "visibility": "internal" } ], - "id": 26075, + "id": 28054, "nodeType": "VariableDeclarationStatement", - "src": "9712:11:16" + "src": "10056:11:18" }, { "body": { - "id": 26100, + "id": 28079, "nodeType": "Block", - "src": "9789:137:16", + "src": "10133:137:18", "statements": [ { "condition": { @@ -7910,7 +8135,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 26092, + "id": 28071, "isConstant": false, "isLValue": false, "isPure": false, @@ -7918,25 +8143,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 26087, + "id": 28066, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "9808:15:16", + "referencedDeclaration": 27518, + "src": "10152:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 26089, + "id": 28068, "indexExpression": { - "id": 26088, + "id": 28067, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26077, - "src": "9824:1:16", + "referencedDeclaration": 28056, + "src": "10168:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7947,22 +8172,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9808:18:16", + "src": "10152:18:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage", + "typeIdentifier": "t_struct$_Investor_$27525_storage", "typeString": "struct Vesting.Investor storage ref" } }, - "id": 26090, + "id": 28069, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9827:7:16", + "memberLocation": "10171:7:18", "memberName": "account", "nodeType": "MemberAccess", - "referencedDeclaration": 25554, - "src": "9808:26:16", + "referencedDeclaration": 27520, + "src": "10152:26:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7971,45 +8196,45 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 26091, + "id": 28070, "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26059, - "src": "9838:8:16", + "referencedDeclaration": 28038, + "src": "10182:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "9808:38:16", + "src": "10152:38:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 26099, + "id": 28078, "nodeType": "IfStatement", - "src": "9804:111:16", + "src": "10148:111:18", "trueBody": { - "id": 26098, + "id": 28077, "nodeType": "Block", - "src": "9848:67:16", + "src": "10192:67:18", "statements": [ { "expression": { - "id": 26095, + "id": 28074, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 26093, + "id": 28072, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26074, - "src": "9867:3:16", + "referencedDeclaration": 28053, + "src": "10211:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8018,31 +8243,31 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 26094, + "id": 28073, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26077, - "src": "9873:1:16", + "referencedDeclaration": 28056, + "src": "10217:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9867:7:16", + "src": "10211:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 26096, + "id": 28075, "nodeType": "ExpressionStatement", - "src": "9867:7:16" + "src": "10211:7:18" }, { - "id": 26097, + "id": 28076, "nodeType": "Break", - "src": "9894:5:16" + "src": "10238:5:18" } ] } @@ -8054,18 +8279,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 26083, + "id": 28062, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 26080, + "id": 28059, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26077, - "src": "9756:1:16", + "referencedDeclaration": 28056, + "src": "10100:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8075,52 +8300,52 @@ "operator": "<", "rightExpression": { "expression": { - "id": 26081, + "id": 28060, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "9760:15:16", + "referencedDeclaration": 27518, + "src": "10104:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "id": 26082, + "id": 28061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9776:6:16", + "memberLocation": "10120:6:18", "memberName": "length", "nodeType": "MemberAccess", - "src": "9760:22:16", + "src": "10104:22:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9756:26:16", + "src": "10100:26:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 26101, + "id": 28080, "initializationExpression": { "assignments": [ - 26077 + 28056 ], "declarations": [ { "constant": false, - "id": 26077, + "id": 28056, "mutability": "mutable", "name": "i", - "nameLocation": "9749:1:16", + "nameLocation": "10093:1:18", "nodeType": "VariableDeclaration", - "scope": 26101, - "src": "9741:9:16", + "scope": 28080, + "src": "10085:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8128,10 +8353,10 @@ "typeString": "uint256" }, "typeName": { - "id": 26076, + "id": 28055, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9741:7:16", + "src": "10085:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8140,17 +8365,17 @@ "visibility": "internal" } ], - "id": 26079, + "id": 28058, "initialValue": { "hexValue": "30", - "id": 26078, + "id": 28057, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9753:1:16", + "src": "10097:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -8158,11 +8383,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9741:13:16" + "src": "10085:13:18" }, "loopExpression": { "expression": { - "id": 26085, + "id": 28064, "isConstant": false, "isLValue": false, "isPure": false, @@ -8170,14 +8395,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "9784:3:16", + "src": "10128:3:18", "subExpression": { - "id": 26084, + "id": 28063, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26077, - "src": "9784:1:16", + "referencedDeclaration": 28056, + "src": "10128:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8188,57 +8413,57 @@ "typeString": "uint256" } }, - "id": 26086, + "id": 28065, "nodeType": "ExpressionStatement", - "src": "9784:3:16" + "src": "10128:3:18" }, "nodeType": "ForStatement", - "src": "9736:190:16" + "src": "10080:190:18" }, { "expression": { - "id": 26102, + "id": 28081, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26074, - "src": "9945:3:16", + "referencedDeclaration": 28053, + "src": "10289:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 26063, - "id": 26103, + "functionReturnParameters": 28042, + "id": 28082, "nodeType": "Return", - "src": "9938:10:16" + "src": "10282:10:18" } ] }, "documentation": { - "id": 26057, + "id": 28036, "nodeType": "StructuredDocumentation", - "src": "9299:213:16", + "src": "9643:213:18", "text": "@notice This function returns the index location of an account in the investor library array\n @param _account address of investor\n @return uint256 investor's index in the investor library array" }, "implemented": true, "kind": "function", "modifiers": [], "name": "locateInvestor", - "nameLocation": "9527:14:16", + "nameLocation": "9871:14:18", "parameters": { - "id": 26060, + "id": 28039, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 26059, + "id": 28038, "mutability": "mutable", "name": "_account", - "nameLocation": "9550:8:16", + "nameLocation": "9894:8:18", "nodeType": "VariableDeclaration", - "scope": 26105, - "src": "9542:16:16", + "scope": 28084, + "src": "9886:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8246,10 +8471,10 @@ "typeString": "address" }, "typeName": { - "id": 26058, + "id": 28037, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9542:7:16", + "src": "9886:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8259,21 +8484,21 @@ "visibility": "internal" } ], - "src": "9541:18:16" + "src": "9885:18:18" }, "returnParameters": { - "id": 26063, + "id": 28042, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 26062, + "id": 28041, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 26105, - "src": "9583:7:16", + "scope": 28084, + "src": "9927:7:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8281,10 +8506,10 @@ "typeString": "uint256" }, "typeName": { - "id": 26061, + "id": 28040, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9583:7:16", + "src": "9927:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8293,48 +8518,48 @@ "visibility": "internal" } ], - "src": "9582:9:16" + "src": "9926:9:18" }, - "scope": 26117, + "scope": 28096, "stateMutability": "view", "virtual": false, "visibility": "internal" }, { - "id": 26116, + "id": 28095, "nodeType": "FunctionDefinition", - "src": "10096:111:16", + "src": "10440:111:18", "nodes": [], "body": { - "id": 26115, + "id": 28094, "nodeType": "Block", - "src": "10166:41:16", + "src": "10510:41:18", "nodes": [], "statements": [ { "expression": { - "id": 26113, + "id": 28092, "name": "investorLibrary", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25552, - "src": "10184:15:16", + "referencedDeclaration": 27518, + "src": "10528:15:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage", "typeString": "struct Vesting.Investor storage ref[] storage ref" } }, - "functionReturnParameters": 26112, - "id": 26114, + "functionReturnParameters": 28091, + "id": 28093, "nodeType": "Return", - "src": "10177:22:16" + "src": "10521:22:18" } ] }, "documentation": { - "id": 26106, + "id": 28085, "nodeType": "StructuredDocumentation", - "src": "9964:126:16", + "src": "10308:126:18", "text": "@notice This function returns the investor library array\n @return Investor[] memory the array of investor structs " }, "functionSelector": "50ad827a", @@ -8342,67 +8567,67 @@ "kind": "function", "modifiers": [], "name": "getInvestorLibrary", - "nameLocation": "10105:18:16", + "nameLocation": "10449:18:18", "parameters": { - "id": 26107, + "id": 28086, "nodeType": "ParameterList", "parameters": [], - "src": "10123:2:16" + "src": "10467:2:18" }, "returnParameters": { - "id": 26112, + "id": 28091, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 26111, + "id": 28090, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 26116, - "src": "10147:17:16", + "scope": 28095, + "src": "10491:17:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor[]" }, "typeName": { "baseType": { - "id": 26109, + "id": 28088, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 26108, + "id": 28087, "name": "Investor", "nameLocations": [ - "10147:8:16" + "10491:8:18" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 25559, - "src": "10147:8:16" + "referencedDeclaration": 27525, + "src": "10491:8:18" }, - "referencedDeclaration": 25559, - "src": "10147:8:16", + "referencedDeclaration": 27525, + "src": "10491:8:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25559_storage_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_storage_ptr", "typeString": "struct Vesting.Investor" } }, - "id": 26110, + "id": 28089, "nodeType": "ArrayTypeName", - "src": "10147:10:16", + "src": "10491:10:18", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25559_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage_ptr", "typeString": "struct Vesting.Investor[]" } }, "visibility": "internal" } ], - "src": "10146:19:16" + "src": "10490:19:18" }, - "scope": 26117, + "scope": 28096, "stateMutability": "view", "virtual": false, "visibility": "public" @@ -8412,42 +8637,42 @@ "baseContracts": [ { "baseName": { - "id": 25538, + "id": 27502, "name": "Ownable", "nameLocations": [ - "514:7:16" + "510:7:18" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26291, - "src": "514:7:16" + "referencedDeclaration": 28270, + "src": "510:7:18" }, - "id": 25539, + "id": 27503, "nodeType": "InheritanceSpecifier", - "src": "514:7:16" + "src": "510:7:18" } ], "canonicalName": "Vesting", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 25537, + "id": 27501, "nodeType": "StructuredDocumentation", - "src": "231:263:16", + "src": "227:263:18", "text": "@notice This contract will hold $PROVE tokens in escrow\n This contract will facilitate the private sale investor vesting tokens\n This contract will follow a strict vesting schedule\n This contract will follow a claim model" }, "fullyImplemented": true, "linearizedBaseContracts": [ - 26117, - 26291, - 26143 + 28096, + 28270, + 28122 ], "name": "Vesting", - "nameLocation": "503:7:16", - "scope": 26118, + "nameLocation": "499:7:18", + "scope": 28097, "usedErrors": [] } ], "license": "UNLICENSED" }, - "id": 16 + "id": 18 } \ No newline at end of file diff --git a/out/Vesting.t.sol/VestingTest.json b/out/Vesting.t.sol/VestingTest.json index 897311f..0944c95 100644 --- a/out/Vesting.t.sol/VestingTest.json +++ b/out/Vesting.t.sol/VestingTest.json @@ -856,13 +856,13 @@ } ], "bytecode": { - "object": "0x60806040526000805460ff191660011790553480156200001e57600080fd5b5060008054757109709ecfa91a80626ff3989d68f67f5b1dd12d000062010000600160b01b031990911617905561a4d2806200005b6000396000f3fe60806040523480156200001157600080fd5b50600436106200023d5760003560e01c80638a8fa9b2116200013d578063c060c5f311620000bb578063c947e25d1162000086578063c947e25d14620003fb578063e70dd6cf1462000405578063eea96210146200040e578063f4ceccba1462000418578063fa7626d4146200042257600080fd5b8063c060c5f314620003ba578063c375033d14620003d1578063c5ba73ed14620003e8578063c7283c7814620003f157600080fd5b8063a641e8dc1162000108578063a641e8dc1462000377578063b1857efe1462000381578063b357ca55146200038b578063b967b5a71462000395578063ba414fa6146200039f57600080fd5b80638a8fa9b214620003445780638c38922f146200034e5780638c85288114620003575780639f71f14a146200036e57600080fd5b806356742ce111620001cb57806365dfbcb3116200019657806365dfbcb314620002ea57806369e58f0d14620002f45780636c676a6014620002fe5780637a8fe3c014620003245780637ed9db59146200032d57600080fd5b806356742ce114620002c25780635a17a66b14620002cc5780635f18f11614620002d657806363cbd9c114620002e057600080fd5b806330f7c5c3116200020c57806330f7c5c31462000282578063344b147814620002995780633493f4ca14620002b057806338505fb014620002b957600080fd5b80630a9254e4146200024257806312223997146200024e578063174a5be414620002585780632ef9ccdf1462000278575b600080fd5b6200024c62000430565b005b6200024c620004c2565b62000261600181565b60405160ff90911681526020015b60405180910390f35b6200024c62000814565b6200024c6200029336600462007c3c565b62000b1a565b6200024c620002aa36600462007c3c565b62000c90565b62000261600b81565b62000261600281565b6200024c62000da0565b6200024c62000ef8565b6200024c620010d1565b6200024c620012b6565b6200024c62001d10565b6200024c62002156565b620003156200030f36600462007c78565b620026aa565b6040519081526020016200026f565b62000261600c81565b6200024c6200033e36600462007cd2565b62002708565b6200024c620028c1565b62000261600a81565b6200024c6200036836600462007d0d565b62002e97565b62000261600481565b6200024c620036db565b6200024c62003c48565b6200024c62003e97565b6200024c6200458a565b620003a962004670565b60405190151581526020016200026f565b62000315620003cb36600462007c3c565b620047a1565b6200024c620003e236600462007d0d565b620047bc565b62000261600381565b6200024c62004f22565b6200024c62005239565b62000261600081565b6200024c62005a96565b6200024c62005cef565b600054620003a99060ff1681565b6200043a6200458a565b6200044462005a96565b60025460405173c00e94cb662c3520282e6f5717214004a7f26888916001600160a01b031690620004759062007beb565b6200048292919062007d27565b604051809103906000f0801580156200049f573d6000803e3d6000fd5b50601880546001600160a01b0319166001600160a01b0392909216919091179055565b6018546001546040516337bde4df60e11b81526001600160a01b03918216600482015262000545929190911690636f7bc9be906024015b602060405180830381865afa15801562000517573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053d919062007d41565b600062005f02565b60185460408051632856c13d60e11b815290516000926001600160a01b0316916350ad827a91600480830192869291908290030181865afa1580156200058f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620005b9919081019062007dfe565b9050620005c9815160006200608b565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620006109390821692911690678ac7230489e800009060040162007ed9565b6020604051808303816000875af115801562000630573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000656919062007d41565b62000665576200066562007efd565b6018546001546040516337bde4df60e11b81526001600160a01b039182166004820152620006e8929190911690636f7bc9be906024015b602060405180830381865afa158015620006ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006e0919062007d41565b600162005f02565b601860009054906101000a90046001600160a01b03166001600160a01b03166350ad827a6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156200073c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000766919081019062007dfe565b905062000776815160016200608b565b620007ae8160008151811062000790576200079062007f13565b6020908102919091010151516001546001600160a01b03166200614e565b620007e381600081518110620007c857620007c862007f13565b602002602001015160200151678ac7230489e800006200608b565b6200081181600081518110620007fd57620007fd62007f13565b60200260200101516040015160006200608b565b50565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200085b9390821692911690678ac7230489e800009060040162007ed9565b6020604051808303816000875af11580156200087b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008a1919062007d41565b620008b057620008b062007efd565b6018546001546040516337bde4df60e11b81526001600160a01b039182166004820152620008ec929190911690636f7bc9be906024016200069c565b60185460408051632856c13d60e11b815290516000926001600160a01b0316916350ad827a91600480830192869291908290030181865afa15801562000936573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000960919081019062007dfe565b905062000970815160016200608b565b6200098a8160008151811062000790576200079062007f13565b620009a481600081518110620007c857620007c862007f13565b620009be81600081518110620007fd57620007fd62007f13565b60025460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f493620009fb939082169291169060040162007d27565b6020604051808303816000875af115801562000a1b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a41919062007d41565b62000a505762000a5062007efd565b6018546001546040516337bde4df60e11b81526001600160a01b03918216600482015262000a8c929190911690636f7bc9be90602401620004f9565b601860009054906101000a90046001600160a01b03166001600160a01b03166350ad827a6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000ae0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000b0a919081019062007dfe565b905062000811815160006200608b565b600082841162000b365762000b30848462007f3f565b62000b42565b62000b42838562007f3f565b90508060000362000b535750505050565b6000841562000b63578462000b65565b835b9050600062000b7684600a62008052565b62000b8e906b033b2e3c9fd0803ce800000062008076565b8262000ba76b033b2e3c9fd0803ce8000000866200808d565b62000bb3919062008076565b1090508062000c8857604080518181526034818301527f4572726f723a20617070726f782061203d3d2062206e6f742073617469736669606082015273032b2161030b1b1bab930b1bc903234b3b4ba39960651b60808201526020810186905290516000805160206200a47d8339815191529181900360a00190a16000805160206200a47d8339815191528660405162000c4e9190620080a7565b60405180910390a16000805160206200a47d8339815191528560405162000c769190620080e0565b60405180910390a162000c8862006248565b505050505050565b600082841162000cac5762000ca6848462007f3f565b62000cb8565b62000cb8838562007f3f565b9050818111158062000d9957604080518181526038818301527f4572726f723a20617070726f782061203d3d2062206e6f74207361746973666960608201527f65642c20616363757261637920646966666572656e636520000000000000000060808201526020810185905290516000805160206200a47d8339815191529181900360a00190a16000805160206200a47d8339815191528560405162000d5f9190620080a7565b60405180910390a16000805160206200a47d8339815191528460405162000d879190620080e0565b60405180910390a162000d9962006248565b5050505050565b601854604080516385d4cad360e01b8152905162000e2e926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562000ded573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e1391906200810b565b73c00e94cb662c3520282e6f5717214004a7f268886200614e565b6018546040805163f02c6d8f60e01b8152905162000ea9926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa15801562000e7b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ea191906200812b565b60006200608b565b60185460408051633fc3ddeb60e11b8152905162000ef6926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa15801562000517573d6000803e3d6000fd5b565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362000f4093908216929116906801158e460913d000009060040162007ed9565b6020604051808303816000875af115801562000f60573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f86919062007d41565b62000f955762000f9562007efd565b601854600354604051630bca8bcd60e01b81526001600160a01b03918216600482015262000fea929190911690630bca8bcd906024015b602060405180830381865afa15801562000e7b573d6000803e3d6000fd5b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562001039573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200105f919062007d41565b50601854600154604051630bca8bcd60e01b81526001600160a01b0391821660048201526200109c929190911690630bca8bcd9060240162000fcc565b601854604051630bca8bcd60e01b81526000600482015262000ef6916001600160a01b031690630bca8bcd9060240162000fcc565b6018546040805163f02c6d8f60e01b815290516200111e926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa15801562000e7b573d6000803e3d6000fd5b60185460408051633fc3ddeb60e11b815290516200116b926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa15801562000517573d6000803e3d6000fd5b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af1158015620011ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011e0919062007d41565b620011ef57620011ef62007efd565b6018546040805163f02c6d8f60e01b8152905162001269926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa1580156200123c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200126291906200812b565b426200608b565b60185460408051633fc3ddeb60e11b8152905162000ef6926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa158015620006ba573d6000803e3d6000fd5b60185469d3c21bcecceda100000090620012f09073c00e94cb662c3520282e6f5717214004a7f26888906001600160a01b0316836200634c565b6003546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a43d833981519152906306447d5690602401600060405180830381600087803b1580156200134557600080fd5b505af11580156200135a573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc94506200139e939283169290911690869060040162007ed9565b6020604051808303816000875af1158015620013be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013e4919062007d41565b620013f357620013f362007efd565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562001442573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001468919062007d41565b62001477576200147762007efd565b601854604080516385d4cad360e01b815290516200151c926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620014c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014ea91906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162000fcc565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200156b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001591919062007d41565b620015a057620015a062007efd565b601854604080516385d4cad360e01b81529051620016a4926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620015ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200161391906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa1580156200165d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200168391906200812b565b60646200169284600c6200808d565b6200169e919062008076565b6200608b565b620016b26224ea0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001701573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001727919062007d41565b62001736576200173662007efd565b601854604080516385d4cad360e01b8152905162001828926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001783573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017a991906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620017f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200181991906200812b565b6064620016928460146200808d565b620018366224ea0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001885573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018ab919062007d41565b620018ba57620018ba62007efd565b601854604080516385d4cad360e01b81529051620019ac926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001907573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200192d91906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562001977573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200199d91906200812b565b60646200169284601c6200808d565b620019ba626ebe0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001a09573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a2f919062007d41565b62001a3e5762001a3e62007efd565b601854604080516385d4cad360e01b8152905162001b30926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001a8b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ab191906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562001afb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b2191906200812b565b6064620016928460346200808d565b62001b3e62dd7c0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001b8d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bb3919062007d41565b62001bc25762001bc262007efd565b601854604080516385d4cad360e01b8152905162001cad926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001c0f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c3591906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a08231906024015b602060405180830381865afa15801562001c80573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ca691906200812b565b826200608b565b6000805160206200a45d83398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562001cfb57600080fd5b505af115801562000d99573d6000803e3d6000fd5b6003546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262001d5c9291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007d27565b6020604051808303816000875af115801562001d7c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001da2919062007d41565b1562001db25762001db262007efd565b6001546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262001dfe9291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007d27565b6020604051808303816000875af115801562001e1e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e44919062007d41565b1562001e545762001e5462007efd565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262001ea09291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007d27565b6020604051808303816000875af115801562001ec0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ee6919062007d41565b1562001ef65762001ef662007efd565b600254601854604080516385d4cad360e01b815290516001600160a01b03938416936305e31e3693169182916385d4cad3916004808201926020929091908290030181865afa15801562001f4e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f7491906200810b565b6040518363ffffffff1660e01b815260040162001f9392919062007d27565b6020604051808303816000875af115801562001fb3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fd9919062007d41565b1562001fe95762001fe962007efd565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e3692620020229291169060009060040162007d27565b6020604051808303816000875af115801562002042573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002068919062007d41565b1562002078576200207862007efd565b601854620020b59073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906001600160a01b0316620020af620f424060646200808d565b6200634c565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e3692620021019291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007d27565b6020604051808303816000875af115801562002121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002147919062007d41565b62000ef65762000ef662007efd565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200219d9390821692911690678ac7230489e800009060040162007ed9565b6020604051808303816000875af1158015620021bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620021e3919062007d41565b620021f257620021f262007efd565b60035460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f4936200222f939082169291169060040162007d27565b6020604051808303816000875af11580156200224f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002275919062007d41565b1562002285576200228562007efd565b60015460185460405163342e503d60e21b81526001600160a01b039283169263d0b940f492620022bd92911690849060040162007d27565b6020604051808303816000875af1158015620022dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002303919062007d41565b1562002313576200231362007efd565b60025460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f49362002350939082169291169060040162007d27565b6020604051808303816000875af115801562002370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002396919062007d41565b620023a557620023a562007efd565b6002546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a43d833981519152906306447d5690602401600060405180830381600087803b158015620023fa57600080fd5b505af11580156200240f573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f72000000000000000060648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b158015620024af57600080fd5b505af1158015620024c4573d6000803e3d6000fd5b505060185460035460405163084e292f60e31b81526001600160a01b0391821660048201529116925063427149789150602401600060405180830381600087803b1580156200251257600080fd5b505af115801562002527573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f74206265206164647265737328302900000000000060648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b158015620025c757600080fd5b505af1158015620025dc573d6000803e3d6000fd5b505060185460405163084e292f60e31b8152600060048201526001600160a01b039091169250634271497891506024015b600060405180830381600087803b1580156200262857600080fd5b505af11580156200263d573d6000803e3d6000fd5b505050506000805160206200a45d83398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200268f57600080fd5b505af1158015620026a4573d6000803e3d6000fd5b50505050565b600084158015620026b9575081155b15620026c85750600062002700565b838303620026d857508162002700565b83620026e5818562007f3f565b620026f1908762008145565b620026fd91906200815c565b90505b949350505050565b6000838152600460208190526040808320805460019091015491516370a0823160e01b81526001600160a01b0387811694820194909452921692909183906370a0823190602401602060405180830381865afa1580156200276d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200279391906200812b565b6000546040519192506201000090046001600160a01b0316906370ca10bb908590620027c6908990879060200162008172565b604051602081830303815290604052805190602001208785620027ea91906200815c565b6040516001600160e01b031960e086901b1681526200280f939291906004016200818b565b600060405180830381600087803b1580156200282a57600080fd5b505af11580156200283f573d6000803e3d6000fd5b50506040516370a0823160e01b81526001600160a01b03888116600483015262000c889350861691506370a0823190602401602060405180830381865afa1580156200288f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028b591906200812b565b6200169e86846200815c565b601854620028fa9073c00e94cb662c3520282e6f5717214004a7f26888906001600160a01b03166a0422ca8b0a00a4250000006200634c565b6003546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a43d833981519152906306447d5690602401600060405180830381600087803b1580156200294f57600080fd5b505af115801562002964573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f7200000000000060648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b15801562002a0457600080fd5b505af115801562002a19573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002a6e57600080fd5b505af115801562002a83573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc945062002ad193928316929091169069d3c21bcecceda10000009060040162007ed9565b6020604051808303816000875af115801562002af1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b17919062007d41565b62002b265762002b2662007efd565b60405163f28dceb360e01b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b60648201526000805160206200a43d8339815191529063f28dceb390608401600060405180830381600087803b15801562002bb057600080fd5b505af115801562002bc5573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002c1a57600080fd5b505af115801562002c2f573d6000803e3d6000fd5b5050600254601854604051636de416d560e11b81526001600160a01b0391821660048201529116925063dbc82daa91506024016020604051808303816000875af115801562002c82573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002ca8919062007d41565b62002cb75762002cb762007efd565b601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002d0857600080fd5b505af115801562002d1d573d6000803e3d6000fd5b5050505062002d306301dfe20062006360565b601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002d8157600080fd5b505af115801562002d96573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b60648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b15801562002e2d57600080fd5b505af115801562002e42573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200262857600080fd5b62002eb98169152d02c7e14af68000006a52b7d2dcc80cd2e4000000620063bb565b60185490915062002eea9073c00e94cb662c3520282e6f5717214004a7f26888906001600160a01b0316836200634c565b6003546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a43d833981519152906306447d5690602401600060405180830381600087803b15801562002f3f57600080fd5b505af115801562002f54573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc945062002f98939283169290911690869060040162007ed9565b6020604051808303816000875af115801562002fb8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002fde919062007d41565b62002fed5762002fed62007efd565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af11580156200303c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003062919062007d41565b62003071576200307162007efd565b601854604080516385d4cad360e01b81529051620030be926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620014c4573d6000803e3d6000fd5b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200310d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003133919062007d41565b62003142576200314262007efd565b601854604080516385d4cad360e01b815290516200324f926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa1580156200318f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620031b591906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620031ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200322591906200812b565b60646200323484600c6200808d565b62003240919062008076565b670de0b6b3a764000062000c90565b6200325d6224ea0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620032ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032d2919062007d41565b620032e157620032e162007efd565b601854604080516385d4cad360e01b81529051620033d3926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa1580156200332e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200335491906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa1580156200339e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033c491906200812b565b6064620032348460146200808d565b620033e16224ea0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562003430573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003456919062007d41565b62003465576200346562007efd565b601854604080516385d4cad360e01b8152905162003557926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620034b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620034d891906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562003522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200354891906200812b565b60646200323484601c6200808d565b62003565626ebe0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620035b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620035da919062007d41565b620035e957620035e962007efd565b601854604080516385d4cad360e01b8152905162001b30926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562003636573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200365c91906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620036a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620036cc91906200812b565b6064620032348460346200808d565b600354601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620037229390821692911690678ac7230489e800009060040162007ed9565b6020604051808303816000875af115801562003742573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003768919062007d41565b1562003778576200377862007efd565b600154601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc92620037ba929116908490678ac7230489e800009060040162007ed9565b6020604051808303816000875af1158015620037da573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003800919062007d41565b1562003810576200381062007efd565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620038579390821692911690678ac7230489e800009060040162007ed9565b6020604051808303816000875af115801562003877573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200389d919062007d41565b620038ac57620038ac62007efd565b6002546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a43d833981519152906306447d5690602401600060405180830381600087803b1580156200390157600080fd5b505af115801562003916573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b60648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b158015620039ad57600080fd5b505af1158015620039c2573d6000803e3d6000fd5b505060185460015460405163ec20b45760e01b81526001600160a01b03928316945063ec20b457935062003a079290911690678ac7230489e800009060040162008172565b600060405180830381600087803b15801562003a2257600080fd5b505af115801562003a37573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f742062652061646472657373283029000000000000000060648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b15801562003ad757600080fd5b505af115801562003aec573d6000803e3d6000fd5b505060185460405163ec20b45760e01b81526001600160a01b03909116925063ec20b457915062003b2d90600090678ac7230489e800009060040162008172565b600060405180830381600087803b15801562003b4857600080fd5b505af115801562003b5d573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b60648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b15801562003bf557600080fd5b505af115801562003c0a573d6000803e3d6000fd5b505060185460035460405163ec20b45760e01b81526001600160a01b03928316945063ec20b45793506200260d929091169060009060040162008172565b60185462003c7f9073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906001600160a01b0316620020af620f424060646200808d565b6018546040516370a0823160e01b81526001600160a01b03909116600482015262003d189073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a08231906024015b602060405180830381865afa15801562003ce2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003d0891906200812b565b6200169e620f424060646200808d565b6002546040516370a0823160e01b81526001600160a01b03909116600482015262003d629073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a082319060240162000fcc565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262003dae9291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007d27565b6020604051808303816000875af115801562003dce573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003df4919062007d41565b62003e035762003e0362007efd565b6018546040516370a0823160e01b81526001600160a01b03909116600482015262003e4d9073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a082319060240162000fcc565b6002546040516370a0823160e01b81526001600160a01b03909116600482015262000ef69073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a082319060240162003cc4565b600060405162003ea79062007bf9565b604051809103906000f08015801562003ec4573d6000803e3d6000fd5b50600254601854600154604051631b13e53760e21b81529394506001600160a01b0392831693636c4f94dc9362003f0d938116921690678ac7230489e800009060040162007ed9565b6020604051808303816000875af115801562003f2d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003f53919062007d41565b62003f625762003f6262007efd565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362003faa93908216929116906801158e460913d000009060040162007ed9565b6020604051808303816000875af115801562003fca573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ff0919062007d41565b62003fff5762003fff62007efd565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc92620040429291169085906801a055690d9db800009060040162007ed9565b6020604051808303816000875af115801562004062573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004088919062007d41565b62004097576200409762007efd565b6018546001546040516337bde4df60e11b81526001600160a01b039182166004820152620040d3929190911690636f7bc9be906024016200069c565b6018546003546040516337bde4df60e11b81526001600160a01b0391821660048201526200410f929190911690636f7bc9be906024016200069c565b6018546040516337bde4df60e11b81526001600160a01b03838116600483015262004145921690636f7bc9be906024016200069c565b60185460408051632856c13d60e11b815290516000926001600160a01b0316916350ad827a91600480830192869291908290030181865afa1580156200418f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620041b9919081019062007dfe565b9050620041c9815160036200608b565b620041e38160008151811062000790576200079062007f13565b620041fd81600081518110620007c857620007c862007f13565b6200421781600081518110620007fd57620007fd62007f13565b6200424f8160018151811062004231576200423162007f13565b6020908102919091010151516003546001600160a01b03166200614e565b620042858160018151811062004269576200426962007f13565b6020026020010151602001516801158e460913d000006200608b565b6200429f81600181518110620007fd57620007fd62007f13565b620042cc81600281518110620042b957620042b962007f13565b602002602001015160000151836200614e565b6200430281600281518110620042e657620042e662007f13565b6020026020010151602001516801a055690d9db800006200608b565b6200431c81600281518110620007fd57620007fd62007f13565b60025460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f49362004359939082169291169060040162007d27565b6020604051808303816000875af115801562004379573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200439f919062007d41565b620043ae57620043ae62007efd565b6018546001546040516337bde4df60e11b81526001600160a01b039182166004820152620043ea929190911690636f7bc9be90602401620004f9565b6018546003546040516337bde4df60e11b81526001600160a01b03918216600482015262004426929190911690636f7bc9be906024016200069c565b6018546040516337bde4df60e11b81526001600160a01b0384811660048301526200445c921690636f7bc9be906024016200069c565b601860009054906101000a90046001600160a01b03166001600160a01b03166350ad827a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015620044b0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620044da919081019062007dfe565b9050620044ea815160026200608b565b6200450481600081518110620042b957620042b962007f13565b6200451e81600081518110620042e657620042e662007f13565b6200453881600081518110620007fd57620007fd62007f13565b620045528160018151811062004231576200423162007f13565b6200456c8160018151811062004269576200426962007f13565b6200458681600181518110620007fd57620007fd62007f13565b5050565b604051620045989062007bf9565b604051809103906000f080158015620045b5573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b0392909216919091179055604051620045e49062007bf9565b604051809103906000f08015801562004601573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b0392909216919091179055604051620046309062007bf9565b604051809103906000f0801580156200464d573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008054610100900460ff1615620046915750600054610100900460ff1690565b60006000805160206200a43d8339815191523b156200479c576040516000906000805160206200a43d833981519152907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc490620046fe9083906519985a5b195960d21b9060200162008172565b60408051601f19818403018152908290526200471e9291602001620081d2565b60408051601f19818403018152908290526200473a9162008205565b6000604051808303816000865af19150503d806000811462004779576040519150601f19603f3d011682016040523d82523d6000602084013e6200477e565b606091505b509150508080602001905181019062004798919062007d41565b9150505b919050565b6000620047b28484846000620026aa565b90505b9392505050565b620047de8169152d02c7e14af68000006a52b7d2dcc80cd2e4000000620063bb565b601854909150620048159073c00e94cb662c3520282e6f5717214004a7f26888906001600160a01b0316620020af8460036200808d565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562004864573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200488a919062007d41565b62004899576200489962007efd565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620048d89390821692911690869060040162007ed9565b6020604051808303816000875af1158015620048f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200491e919062007d41565b6200492d576200492d62007efd565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200496c9390821692911690869060040162007ed9565b6020604051808303816000875af11580156200498c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620049b2919062007d41565b620049c157620049c162007efd565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc92620049fb929116908490869060040162007ed9565b6020604051808303816000875af115801562004a1b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004a41919062007d41565b62004a505762004a5062007efd565b62004a5e6212750062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004aad573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004ad3919062007d41565b62004ae25762004ae262007efd565b601854604080516385d4cad360e01b8152905162004b2f926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa1580156200318f573d6000803e3d6000fd5b62004b3d62cb070062006360565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004b8c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004bb2919062007d41565b62004bc15762004bc162007efd565b601854604080516385d4cad360e01b8152905162004cb3926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562004c0e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004c3491906200810b565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562004c7e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004ca491906200812b565b60646200323484603c6200808d565b62004cc162b8920062006360565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004d10573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004d36919062007d41565b62004d455762004d4562007efd565b601854604080516385d4cad360e01b8152905162004dea926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562004d92573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004db891906200810b565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162001c62565b62004df96301dfe20062006360565b600254601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004e48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004e6e919062007d41565b62004e7d5762004e7d62007efd565b601854604080516385d4cad360e01b8152905162000811926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562004eca573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004ef091906200810b565b6002546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162001c62565b600254601854600354604051631b13e53760e21b815269d3c21bcecceda1000000936001600160a01b0390811693636c4f94dc9362004f6c93918316921690869060040162007ed9565b6020604051808303816000875af115801562004f8c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004fb2919062007d41565b62004fc15762004fc162007efd565b6018546003546040516388a772ef60e01b81526001600160a01b03918216600482015262004ffd9291909116906388a772ef9060240162001c62565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af11580156200504c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005072919062007d41565b62005081576200508162007efd565b6200508f626ebe0062006360565b60006064620050a08360086200808d565b620050ac919062008076565b620050b99060036200808d565b6064620050c884600c6200808d565b620050d4919062008076565b620050e091906200815c565b601854600354604051630bca8bcd60e01b81526001600160a01b0391821660048201529293506200511d92911690630bca8bcd9060240162001c62565b6200512c630127500062006360565b60646200513b8360086200808d565b62005147919062008076565b6200515490600b6200808d565b60646200516384600c6200808d565b6200516f919062008076565b6200517b91906200815c565b601854600354604051630bca8bcd60e01b81526001600160a01b039182166004820152929350620051b892911690630bca8bcd9060240162001c62565b601854600354604051630bca8bcd60e01b81526001600160a01b03918216600482015262004586929190911690630bca8bcd90602401602060405180830381865afa1580156200520c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200523291906200812b565b836200608b565b601854620052729073c00e94cb662c3520282e6f5717214004a7f26888906001600160a01b03166a0422ca8b0a00a4250000006200634c565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af1158015620052c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620052e7919062007d41565b620052f657620052f662007efd565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200533f939082169291169069d3c21bcecceda10000009060040162007ed9565b6020604051808303816000875af11580156200535f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005385919062007d41565b62005394576200539462007efd565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620053dd939082169291169069d3c21bcecceda10000009060040162007ed9565b6020604051808303816000875af1158015620053fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005423919062007d41565b62005432576200543262007efd565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc926200547692911690849069d3c21bcecceda10000009060040162007ed9565b6020604051808303816000875af115801562005496573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620054bc919062007d41565b620054cb57620054cb62007efd565b620054d96212750062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562005528573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200554e919062007d41565b6200555d576200555d62007efd565b601854604080516385d4cad360e01b8152905162005651926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620055aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620055d091906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa1580156200561a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200564091906200812b565b691969368974c05b0000006200608b565b6200565f62cb070062006360565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620056ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620056d4919062007d41565b620056e357620056e362007efd565b601854604080516385d4cad360e01b81529051620057d7926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562005730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200575691906200810b565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620057a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620057c691906200812b565b697f0e10af47c1c70000006200608b565b620057e562b8920062006360565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562005834573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200585a919062007d41565b62005869576200586962007efd565b601854604080516385d4cad360e01b815290516200595e926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620058b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620058dc91906200810b565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a08231906024015b602060405180830381865afa15801562005927573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200594d91906200812b565b69d3c21bcecceda10000006200608b565b6200596d6301dfe20062006360565b600254601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620059bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620059e2919062007d41565b620059f157620059f162007efd565b601854604080516385d4cad360e01b8152905162000ef6926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562005a3e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005a6491906200810b565b6002546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162005909565b60046020527ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603c80546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481790915560097ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603d557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13e80548216736b175474e89094c44da98b954eedeac495271d0f17905560027f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13f557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf1408054821673aed0c38402a5d19df6e4c03f4e2dced6e29c1ee91790557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d268054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560037f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d27557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d2880548216735f4ec3df9cbd43714fe2740f5e3616155c5b8419179055635742544360e01b60009081527f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691d980548316732260fac5e5542a773aa44fbcfedf7c193bc2c5991790557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691da557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691db805490911673f4030086522a5beea4988f8ca5b36dbc97bee88c179055565b600354601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005d3e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005d64919062007d41565b1562005d745762005d7462007efd565b600154601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005dc3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005de9919062007d41565b1562005df95762005df962007efd565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005e48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005e6e919062007d41565b62005e7d5762005e7d62007efd565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005ecc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005ef2919062007d41565b1562000ef65762000ef662007efd565b8015158215151462004586577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060405162005f799060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6040820152616c5d60f01b606082015260800190565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35838162005fcc576040518060400160405280600581526020016466616c736560d81b81525062005fea565b604051806040016040528060048152602001637472756560e01b8152505b60405162005ff9919062008251565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583826200604c576040518060400160405280600581526020016466616c736560d81b8152506200606a565b604051806040016040528060048152602001637472756560e01b8152505b60405162006079919062008290565b60405180910390a16200458662006248565b80821462004586577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620060fe9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a16000805160206200a47d83398151915281604051620061269190620080a7565b60405180910390a16000805160206200a47d83398151915282604051620060799190620080e0565b806001600160a01b0316826001600160a01b03161462004586577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620061d69060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464604082015264726573735d60d81b606082015260800190565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f816040516200620f9190620082bb565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f8260405162006079919062008300565b6000805160206200a43d8339815191523b156200633b576040516000906000805160206200a43d833981519152907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc490620062b69083906519985a5b195960d21b906001906020016200818b565b60408051601f1981840301815290829052620062d69291602001620081d2565b60408051601f1981840301815290829052620062f29162008205565b6000604051808303816000865af19150503d806000811462006331576040519150601f19603f3d011682016040523d82523d6000602084013e62006336565b606091505b505050505b6000805461ff001916610100179055565b6200635b8383836000620063fc565b505050565b6000805160206200a43d83398151915263e5d6bf026200638183426200815c565b6040518263ffffffff1660e01b8152600401620063a091815260200190565b600060405180830381600087803b15801562001cfb57600080fd5b6000620063ca84848462006605565b9050620047b56040518060400160405280600c81526020016b109bdd5b990814995cdd5b1d60a21b81525082620067fc565b604080516001600160a01b0385811660248084019190915283518084039091018152604490920183526020820180516001600160e01b03166370a0823160e01b1790529151600092871691620064529162008205565b6000604051808303816000865af19150503d806000811462006491576040519150601f19603f3d011682016040523d82523d6000602084013e62006496565b606091505b50915050600081806020019051810190620064b291906200812b565b9050620064ec84620064e587620064de6370a0823160e01b620064d7600a8d6200689c565b90620068c6565b90620068e4565b906200690d565b821562000c885760408051600481526024810182526020810180516001600160e01b03166318160ddd60e01b17905290516000916001600160a01b0389169162006537919062008205565b6000604051808303816000865af19150503d806000811462006576576040519150601f19603f3d011682016040523d82523d6000602084013e6200657b565b606091505b509150506000818060200190518101906200659791906200812b565b905082861015620065c257620065ae868462007f3f565b620065ba908262007f3f565b9050620065dd565b620065ce838762007f3f565b620065da90826200815c565b90505b620065fb81620064e56318160ddd60e01b620064d7600a8d6200689c565b5050505050505050565b600081831115620066835760405162461bcd60e51b815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e000060648201526084015b60405180910390fd5b828410158015620066945750818411155b15620066a2575082620047b5565b6000620066b0848462007f3f565b620066bd9060016200815c565b905060038511158015620066d057508481115b15620066eb57620066e285856200815c565b915050620047b5565b620066fa600360001962007f3f565b8510158015620067165750620067138560001962007f3f565b81115b1562006736576200672a8560001962007f3f565b620066e2908462007f3f565b82851115620067985760006200674d848762007f3f565b905060006200675d838362008145565b9050806000036200677457849350505050620047b5565b60016200678282886200815c565b6200678e919062007f3f565b93505050620067f4565b83851015620067f4576000620067af868662007f3f565b90506000620067bf838362008145565b905080600003620067d657859350505050620047b5565b620067e2818662007f3f565b620067ef9060016200815c565b935050505b509392505050565b60006a636f6e736f6c652e6c6f676001600160a01b03168383604051602401620068289291906200832b565b60408051601f198184030181529181526020820180516001600160e01b0316632d839cb360e21b179052516200685f919062008205565b600060405180830381855afa9150503d806000811462000c88576040519150601f19603f3d011682016040523d82523d6000602084013e62000c88565b6005820180546001600160a01b0319166001600160a01b0383161790556000825b90505b92915050565b60038201805463ffffffff191660e083901c179055600082620068bd565b6002820180546001810182556000918252602082206001600160a01b03841691015582620068bd565b620045868282600582015460038301546004840154600285018054604080516020808402820181019092528281526001600160a01b039096169560e09590951b94600093909290918301828280156200698657602002820191906000526020600020905b81548152602001906001019080831162006971575b505050505090506000836200699b8362006c7a565b604051602001620069ae929190620081d2565b60408051601f198184030181528282526001600160a01b038816600090815260018b0160209081528382206001600160e01b03198a16835281529281209194509092909162006a029186918891016200834f565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff1662006a3d5762006a3b8762006d2e565b505b6001600160a01b0385166000908152602088815260408083206001600160e01b031988168452825280832090519091839162006a7e9187918991016200834f565b6040516020818303038152906040528051906020012081526020019081526020016000205460001b9050600080876001600160a01b03168460405162006ac5919062008205565b600060405180830381855afa9150503d806000811462006b02576040519150601f19603f3d011682016040523d82523d6000602084013e62006b07565b606091505b50915062006b2490508162006b1e8860206200808d565b62006d3b565b604051630667f9d760e41b8152909250600091506000805160206200a43d8339815191529063667f9d709062006b61908b90879060040162008172565b602060405180830381865afa15801562006b7f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006ba591906200812b565b905080821462006bc95760405162461bcd60e51b81526004016200667a906200838b565b6040516370ca10bb60e01b81526000805160206200a43d833981519152906370ca10bb9062006c01908b9087908e906004016200818b565b600060405180830381600087803b15801562006c1c57600080fd5b505af115801562006c31573d6000803e3d6000fd5b50505060058b0180546001600160a01b03191690555060038a01805463ffffffff1916905562006c6660028b01600062007c07565b896004016000905550505050505050505050565b606060008251602062006c8e91906200808d565b67ffffffffffffffff81111562006ca95762006ca962007d61565b6040519080825280601f01601f19166020018201604052801562006cd4576020820181803683370190505b50905060005b835181101562006d2757600084828151811062006cfb5762006cfb62007f13565b60200260200101519050808260200260200184015250808062006d1e9062008426565b91505062006cda565b5092915050565b6000620068c08262006dc5565b6000806000602085511162006d5257845162006d55565b60205b905060005b8181101562006dbb5762006d708160086200808d565b8662006d7d83886200815c565b8151811062006d905762006d9062007f13565b01602001516001600160f81b031916901c92909217918062006db28162008426565b91505062006d5a565b5090949350505050565b600581015460038201546004830154600284018054604080516020808402820181019092528281526000966001600160a01b03169560e01b94938793919290919083018282801562006e3757602002820191906000526020600020905b81548152602001906001019080831162006e22575b5050506001600160a01b038716600090815260018a01602090815260408083206001600160e01b03198a168452825280832090519596509491935062006e83925085918791016200834f565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff161562006f22576001600160a01b0384166000908152602087815260408083206001600160e01b0319871684528252808320905190929162006ef29185918791016200834f565b60405160208183030381529060405280519060200120815260200190815260200160002054945050505050919050565b60008362006f308362007abe565b60405160200162006f43929190620081d2565b60405160208183030381529060405290506000805160206200a45d83398151915260001c6001600160a01b031663266cf1096040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562006fa257600080fd5b505af115801562006fb7573d6000803e3d6000fd5b50505050600080866001600160a01b03168360405162006fd8919062008205565b600060405180830381855afa9150503d806000811462007015576040519150601f19603f3d011682016040523d82523d6000602084013e6200701a565b606091505b50915062007037905081620070318760206200808d565b62007b6b565b6040516365bc948160e01b81526001600160a01b0389166004820152909250600091506000805160206200a43d833981519152906365bc9481906024016000604051808303816000875af115801562007094573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620070be9190810190620084af565b5090508051600103620073855760006000805160206200a45d83398151915260001c6001600160a01b031663667f9d70898460008151811062007105576200710562007f13565b60200260200101516040518363ffffffff1660e01b81526004016200712c92919062008172565b602060405180830381865afa1580156200714a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200717091906200812b565b905080620071d4577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a58883600081518110620071b057620071b062007f13565b602002602001015160001c604051620071cb92919062008172565b60405180910390a15b808314620071f65760405162461bcd60e51b81526004016200667a906200838b565b7f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed888887896040516020016200722e9291906200834f565b60405160208183030381529060405280519060200120856000815181106200725a576200725a62007f13565b602002602001015160001c6040516200727794939291906200851a565b60405180910390a18160008151811062007295576200729562007f13565b6020908102919091018101516001600160a01b038a1660009081528c835260408082206001600160e01b03198c1683528452808220905192939092620072e0918a918c91016200834f565b60408051601f1981840301815291815281516020928301208352828201939093529082016000908120939093556001600160a01b038b16835260018d810182528284206001600160e01b03198c168552825282842092519093916200734a918a918c91016200834f565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff19169115159190911790555062007941565b600181511115620078d05760005b8151811015620078c95760006000805160206200a45d83398151915260001c6001600160a01b031663667f9d708a858581518110620073d657620073d662007f13565b60200260200101516040518363ffffffff1660e01b8152600401620073fd92919062008172565b602060405180830381865afa1580156200741b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200744191906200812b565b905080620074a4577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a58984848151811062007480576200748062007f13565b602002602001015160001c6040516200749b92919062008172565b60405180910390a15b6000805160206200a45d83398151915260001c6001600160a01b03166370ca10bb8a858581518110620074db57620074db62007f13565b602002602001015161133760f01b6040518463ffffffff1660e01b815260040162007509939291906200818b565b600060405180830381600087803b1580156200752457600080fd5b505af115801562007539573d6000803e3d6000fd5b50505050600060608a6001600160a01b0316876040516200755b919062008205565b600060405180830381855afa9150503d806000811462007598576040519150601f19603f3d011682016040523d82523d6000602084013e6200759d565b606091505b509092509050620075b581620070318b60206200808d565b9550818015620075c9575061133760f01b86145b156200781c577f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed8b8b8a8c604051602001620076079291906200834f565b6040516020818303038152906040528051906020012088888151811062007632576200763262007f13565b602002602001015160001c6040516200764f94939291906200851a565b60405180910390a18484815181106200766c576200766c62007f13565b6020908102919091018101516001600160a01b038d1660009081528f835260408082206001600160e01b03198f1683528452808220905192939092620076b7918d918f91016200834f565b6040516020818303038152906040528051906020012081526020019081526020016000208190555060018d60010160008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c6001600160e01b0319166001600160e01b031916815260200190815260200160002060008a8c604051602001620077449291906200834f565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548160ff0219169083151502179055506000805160206200a45d83398151915260001c6001600160a01b03166370ca10bb8c878781518110620077b657620077b662007f13565b6020026020010151866040518463ffffffff1660e01b8152600401620077df939291906200818b565b600060405180830381600087803b158015620077fa57600080fd5b505af11580156200780f573d6000803e3d6000fd5b50505050505050620078c9565b6000805160206200a45d83398151915260001c6001600160a01b03166370ca10bb8c87878151811062007853576200785362007f13565b6020026020010151866040518463ffffffff1660e01b81526004016200787c939291906200818b565b600060405180830381600087803b1580156200789757600080fd5b505af1158015620078ac573d6000803e3d6000fd5b505050505050508080620078c09062008426565b91505062007393565b5062007941565b6040805162461bcd60e51b81526020600482015260248101919091527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e60648201526084016200667a565b6001600160a01b038716600090815260018a01602090815260408083206001600160e01b03198a16845282528083209051909291620079859188918a91016200834f565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff1662007a145760405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b60648201526084016200667a565b6005890180546001600160a01b031916905560038901805463ffffffff1916905562007a4560028a01600062007c07565b600060048a018190556001600160a01b038816815260208a815260408083206001600160e01b03198a1684528252808320905190929162007a8b9188918a91016200834f565b60405160208183030381529060405280519060200120815260200190815260200160002054975050505050505050919050565b606060008251602062007ad291906200808d565b67ffffffffffffffff81111562007aed5762007aed62007d61565b6040519080825280601f01601f19166020018201604052801562007b18576020820181803683370190505b50905060005b835181101562006d2757600084828151811062007b3f5762007b3f62007f13565b60200260200101519050808260200260200184015250808062007b629062008426565b91505062007b1e565b6000806000602085511162007b8257845162007b85565b60205b905060005b8181101562006dbb5762007ba08160086200808d565b8662007bad83886200815c565b8151811062007bc05762007bc062007f13565b01602001516001600160f81b031916901c92909217918062007be28162008426565b91505062007b8a565b61191b806200854b83390190565b6105d78062009e6683390190565b50805460008255906000526020600020908101906200081191905b8082111562007c38576000815560010162007c22565b5090565b60008060006060848603121562007c5257600080fd5b505081359360208301359350604090920135919050565b80151581146200081157600080fd5b6000806000806080858703121562007c8f57600080fd5b843593506020850135925060408501359150606085013562007cb18162007c69565b939692955090935050565b6001600160a01b03811681146200081157600080fd5b60008060006060848603121562007ce857600080fd5b83359250602084013562007cfc8162007cbc565b929592945050506040919091013590565b60006020828403121562007d2057600080fd5b5035919050565b6001600160a01b0392831681529116602082015260400190565b60006020828403121562007d5457600080fd5b8151620047b58162007c69565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171562007d9d5762007d9d62007d61565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562007dcf5762007dcf62007d61565b604052919050565b600067ffffffffffffffff82111562007df45762007df462007d61565b5060051b60200190565b6000602080838503121562007e1257600080fd5b825167ffffffffffffffff81111562007e2a57600080fd5b8301601f8101851362007e3c57600080fd5b805162007e5362007e4d8262007dd7565b62007da3565b8181526060918202830184019184820191908884111562007e7357600080fd5b938501935b8385101562007ecd5780858a03121562007e925760008081fd5b62007e9c62007d77565b855162007ea98162007cbc565b81528587015187820152604080870151908201528352938401939185019162007e78565b50979650505050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115620068c057620068c062007f29565b600181815b8085111562007f9657816000190482111562007f7a5762007f7a62007f29565b8085161562007f8857918102915b93841c939080029062007f5a565b509250929050565b60008262007faf57506001620068c0565b8162007fbe57506000620068c0565b816001811462007fd7576002811462007fe25762008002565b6001915050620068c0565b60ff84111562007ff65762007ff662007f29565b50506001821b620068c0565b5060208310610133831016604e8410600b841016171562008027575081810a620068c0565b62008033838362007f55565b80600019048211156200804a576200804a62007f29565b029392505050565b6000620068bd838362007f9e565b634e487b7160e01b600052601260045260246000fd5b60008262008088576200808862008060565b500490565b8082028115828204841417620068c057620068c062007f29565b604081526000620080d260408301600a8152690808115e1c1958dd195960b21b602082015260400190565b905082602083015292915050565b604081526000620080d260408301600a815269080808081058dd1d585b60b21b602082015260400190565b6000602082840312156200811e57600080fd5b8151620047b58162007cbc565b6000602082840312156200813e57600080fd5b5051919050565b60008262008157576200815762008060565b500690565b80820180821115620068c057620068c062007f29565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b83811015620081c9578181015183820152602001620081af565b50506000910152565b6001600160e01b0319831681528151600090620081f7816004850160208701620081ac565b919091016004019392505050565b6000825162008219818460208701620081ac565b9190910192915050565b600081518084526200823d816020860160208601620081ac565b601f01601f19169290920160200192915050565b6040815260006200827c60408301600a8152690808115e1c1958dd195960b21b602082015260400190565b828103602084015262002700818562008223565b6040815260006200827c60408301600a815269080808081058dd1d585b60b21b602082015260400190565b604081526000620082e660408301600a8152690808115e1c1958dd195960b21b602082015260400190565b6001600160a01b0393909316602092909201919091525090565b604081526000620082e660408301600a815269080808081058dd1d585b60b21b602082015260400190565b60408152600062008340604083018562008223565b90508260208301529392505050565b825160009082906020808701845b838110156200837b578151855293820193908201906001016200835d565b5050948252509092019392505050565b6020808252606f908201527f73746453746f726167652066696e642853746453746f72616765293a2050616360408201527f6b656420736c6f742e205468697320776f756c642063617573652064616e676560608201527f726f7573206f76657277726974696e6720616e642063757272656e746c79206960808201526e39b713ba1039bab83837b93a32b21760891b60a082015260c00190565b6000600182016200843b576200843b62007f29565b5060010190565b600082601f8301126200845457600080fd5b815160206200846762007e4d8362007dd7565b82815260059290921b840181019181810190868411156200848757600080fd5b8286015b84811015620084a457805183529183019183016200848b565b509695505050505050565b60008060408385031215620084c357600080fd5b825167ffffffffffffffff80821115620084dc57600080fd5b620084ea8683870162008442565b935060208501519150808211156200850157600080fd5b50620085108582860162008442565b9150509250929050565b6001600160a01b039490941684526001600160e01b0319929092166020840152604083015260608201526080019056fe60a06040523480156200001157600080fd5b506040516200191b3803806200191b8339810160408190526200003491620001b2565b600080546001600160a01b03191633908117825560405190918291600080516020620018fb833981519152908290a3506001600160a01b0382166080526200007c8162000084565b5050620001ea565b6000546001600160a01b03163314620000e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0381166200014b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620000db565b600080546040516001600160a01b0380851693921691600080516020620018fb83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b0381168114620001ad57600080fd5b919050565b60008060408385031215620001c657600080fd5b620001d18362000195565b9150620001e16020840162000195565b90509250929050565b6080516116e762000214600039600081816101bd0152818161080f0152610bc201526116e76000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806385d4cad3116100a2578063d36862e811610071578063d36862e81461022e578063dd46706414610241578063ec20b45714610254578063f02c6d8f14610267578063f2fde38b1461027057600080fd5b806385d4cad3146101b857806388a772ef146101f75780638da5cb5b1461020a578063c7e42b1b1461021b57600080fd5b80635b904cb7116100de5780635b904cb7146101685780636f7bc9be14610170578063715018a6146101a35780637f87bbd6146101ab57600080fd5b80630bca8bcd1461011057806342714978146101365780634e71d92d1461014b57806350ad827a14610153575b600080fd5b61012361011e3660046114ba565b610283565b6040519081526020015b60405180910390f35b6101496101443660046114ba565b6103fb565b005b610149610689565b61015b610966565b60405161012d91906114dc565b6101496109e8565b61019361017e3660046114ba565b60066020526000908152604090205460ff1681565b604051901515815260200161012d565b610149610ac7565b6004546101939060ff1681565b6101df7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161012d565b6101236102053660046114ba565b610b3b565b6000546001600160a01b03166101df565b6101496102293660046114ba565b610b96565b61012361023c3660046114ba565b610f28565b61014961024f36600461153e565b610f83565b610149610262366004611557565b61101a565b61012360035481565b61014961027e3660046114ba565b6112bb565b6001600160a01b03811660009081526006602052604081205460ff1680156102ad575060045460ff165b156103ee5760006102bd836113a5565b905060006102ca84610b3b565b905080600583815481106102e0576102e0611581565b90600052602060002090600302016002015410610301575060009392505050565b60006224ea006003544261031591906115ad565b61031f91906115c6565b9050600060646103308460086115e8565b61033a91906115c6565b61034490836115e8565b606461035185600c6115e8565b61035b91906115c6565b61036591906115ff565b9050828111806103765750600b8210155b156103b2576005848154811061038e5761038e611581565b906000526020600020906003020160020154836103ab91906115ad565b90506103e5565b600584815481106103c5576103c5611581565b906000526020600020906003020160020154816103e291906115ad565b90505b95945050505050565b506000919050565b919050565b6000546001600160a01b0316331461042e5760405162461bcd60e51b815260040161042590611612565b60405180910390fd5b6001600160a01b0381166104aa5760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f7420626520616464726573732830290000000000006064820152608401610425565b60006104b5826113a5565b90506000600582815481106104cc576104cc611581565b600091825260209182902060408051606081018252600390930290910180546001600160a01b03168352600180820154948401949094526002015490820152600580549193509161051c916115ad565b8154811061052c5761052c611581565b90600052602060002090600302016005838154811061054d5761054d611581565b60009182526020909120825460039092020180546001600160a01b0319166001600160a01b039092169190911781556001808301548183015560029283015492909101919091556005805483926105a3916115ad565b815481106105b3576105b3611581565b600091825260209182902083516003929092020180546001600160a01b0319166001600160a01b03909216919091178155908201516001820155604090910151600290910155600580548061060a5761060a611647565b6000828152602080822060036000199094019384020180546001600160a01b031916815560018101839055600201829055919092556001600160a01b03851680835260069091526040808320805460ff191690555190917fba0013628ccb89af5bb18edf764d3a7b35c07b894848b8e6fd3434719de39c7d91a2505050565b3360009081526006602052604090205460ff1615156001146107135760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f720000000000006064820152608401610425565b60045460ff166107795760405162461bcd60e51b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b6064820152608401610425565b600061078433610283565b9050600081116107f35760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b6064820152608401610425565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610860573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610884919061165d565b6108e35760405162461bcd60e51b815260206004820152602a60248201527f56657374696e672e736f6c3a3a636c61696d2829207472616e7366657220756e6044820152691cdd58d8d95cdcd99d5b60b21b6064820152608401610425565b60006108ee336113a5565b9050816005828154811061090457610904611581565b9060005260206000209060030201600201600082825461092491906115ff565b909155505060408051338152602081018490527fc9ff33ee3842ec05cab3a4e2b17aa19694b6c461ea543be5752366f912a6539d910160405180910390a15050565b60606005805480602002602001604051908101604052809291908181526020016000905b828210156109df576000848152602090819020604080516060810182526003860290920180546001600160a01b031683526001808201548486015260029091015491830191909152908352909201910161098a565b50505050905090565b6000546001600160a01b03163314610a125760405162461bcd60e51b815260040161042590611612565b60045460ff1615610a8b5760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a656e61626c6556657374696e6728292076657360448201527f74696e6720697320616c726561647920656e61626c65640000000000000000006064820152608401610425565b6004805460ff19166001179055426003556040517ff78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa390600090a1565b6000546001600160a01b03163314610af15760405162461bcd60e51b815260040161042590611612565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03811660009081526006602052604081205460ff16156103ee576000610b67836113a5565b905060058181548110610b7c57610b7c611581565b906000526020600020906003020160010154915050919050565b6000546001600160a01b03163314610bc05760405162461bcd60e51b815260040161042590611612565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610c675760405162461bcd60e51b815260206004820152603960248201527f56657374696e672e736f6c3a3a7769746864726177457263323028292063616e60448201527f6e6f74207769746864726177202450524f564520746f6b656e000000000000006064820152608401610425565b6001600160a01b038116610ce35760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920746f6b60448201527f656e2063616e6e6f7420626520616464726573732830290000000000000000006064820152608401610425565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4e919061167f565b905060008111610dc65760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920696e7360448201527f756666696369656e7420746f6b656e2062616c616e63650000000000000000006064820152608401610425565b6000826001600160a01b031663a9059cbb610de96000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a919061165d565b905080610ec45760405162461bcd60e51b815260206004820152603260248201527f56657374696e672e736f6c3a3a776974686472617745726332302829207472616044820152711b9cd9995c881d5b9cdd58d8d95cdcd99d5b60721b6064820152608401610425565b7f3ff9434501bb42cce78344c3420ec1273f8b404aba16aaae994c0d413b91bb4f8383610ef96000546001600160a01b031690565b604080516001600160a01b039485168152602081019390935292168183015290519081900360600190a1505050565b6001600160a01b03811660009081526006602052604081205460ff16156103ee576000610f54836113a5565b905060058181548110610f6957610f69611581565b906000526020600020906003020160020154915050919050565b6000546001600160a01b03163314610fad5760405162461bcd60e51b815260040161042590611612565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610fdc81426115ff565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000546001600160a01b031633146110445760405162461bcd60e51b815260040161042590611612565b6001600160a01b03821660009081526006602052604090205460ff16156110ca5760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b6064820152608401610425565b6001600160a01b0382166111465760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f74206265206164647265737328302900000000000000006064820152608401610425565b600081116111b45760405162461bcd60e51b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b6064820152608401610425565b6001600160a01b0382811660008181526006602090815260408083208054600160ff1990911681179091558151606081018352858152928301878152838301858152600580549384018155865293517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0600390930292830180546001600160a01b031916919098161790965594517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db186015590517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db290940193909355915190917f62e6a5118be03f9bfedb79b0ed7ed75ee4a9e15fc4c69d2c4976acde26fa2d5f91a25050565b6000546001600160a01b031633146112e55760405162461bcd60e51b815260040161042590611612565b6001600160a01b03811661134a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610425565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526006602052604081205460ff1615156001146114385760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f7200000000000000006064820152608401610425565b6000805b60055481101561149c57836001600160a01b03166005828154811061146357611463611581565b60009182526020909120600390910201546001600160a01b03160361148a5780915061149c565b8061149481611698565b91505061143c565b5092915050565b80356001600160a01b03811681146103f657600080fd5b6000602082840312156114cc57600080fd5b6114d5826114a3565b9392505050565b602080825282518282018190526000919060409081850190868401855b8281101561153157815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016114f9565b5091979650505050505050565b60006020828403121561155057600080fd5b5035919050565b6000806040838503121561156a57600080fd5b611573836114a3565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156115c0576115c0611597565b92915050565b6000826115e357634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176115c0576115c0611597565b808201808211156115c0576115c0611597565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561166f57600080fd5b815180151581146114d557600080fd5b60006020828403121561169157600080fd5b5051919050565b6000600182016116aa576116aa611597565b506001019056fea2646970667358221220157b3eae9a1ae2e7d7cc252855d7fcf62c788bb02ed633aa778f7e49daee3f3f64736f6c634300081100338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0608060405234801561001057600080fd5b506105b7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea26469706673582212202284e67777fca07e29094068d3e700ce3ff463464acf1e2573fcb253960d116864736f6c634300081100330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12db2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a264697066735822122001f97d8f0115722a44b8d4dc385b0808a65cc16612d33a55c6c6022e01d8357464736f6c63430008110033", - "sourceMap": "183:21347:20:-:0;;;1572:26:0;;;-1:-1:-1;;1572:26:0;1594:4;1572:26;;;183:21347:20;;;;;;;;;-1:-1:-1;3048:37:19;3012:77;;;-1:-1:-1;;;;;;3012:77:19;;;;;;183:21347:20;;;;;;", + "object": "0x60806040526000805460ff191660011790553480156200001e57600080fd5b5060008054757109709ecfa91a80626ff3989d68f67f5b1dd12d000062010000600160b01b031990911617905561a73a806200005b6000396000f3fe60806040523480156200001157600080fd5b50600436106200023d5760003560e01c80638a8fa9b2116200013d578063c060c5f311620000bb578063c947e25d1162000086578063c947e25d14620003fb578063e70dd6cf1462000405578063eea96210146200040e578063f4ceccba1462000418578063fa7626d4146200042257600080fd5b8063c060c5f314620003ba578063c375033d14620003d1578063c5ba73ed14620003e8578063c7283c7814620003f157600080fd5b8063a641e8dc1162000108578063a641e8dc1462000377578063b1857efe1462000381578063b357ca55146200038b578063b967b5a71462000395578063ba414fa6146200039f57600080fd5b80638a8fa9b214620003445780638c38922f146200034e5780638c85288114620003575780639f71f14a146200036e57600080fd5b806356742ce111620001cb57806365dfbcb3116200019657806365dfbcb314620002ea57806369e58f0d14620002f45780636c676a6014620002fe5780637a8fe3c014620003245780637ed9db59146200032d57600080fd5b806356742ce114620002c25780635a17a66b14620002cc5780635f18f11614620002d657806363cbd9c114620002e057600080fd5b806330f7c5c3116200020c57806330f7c5c31462000282578063344b147814620002995780633493f4ca14620002b057806338505fb014620002b957600080fd5b80630a9254e4146200024257806312223997146200024e578063174a5be414620002585780632ef9ccdf1462000278575b600080fd5b6200024c62000430565b005b6200024c620004c2565b62000261600181565b60405160ff90911681526020015b60405180910390f35b6200024c62000911565b6200024c6200029336600462007e5d565b62000c17565b6200024c620002aa36600462007e5d565b62000d8d565b62000261600b81565b62000261600281565b6200024c62000e9d565b6200024c62000fc7565b6200024c620011a0565b6200024c62001385565b6200024c62001e3a565b6200024c62002280565b620003156200030f36600462007e99565b620027d4565b6040519081526020016200026f565b62000261600c81565b6200024c6200033e36600462007ef3565b62002832565b6200024c620029eb565b62000261600a81565b6200024c6200036836600462007f2e565b62003019565b62000261600481565b6200024c62003886565b6200024c62003df3565b6200024c62004042565b6200024c62004735565b620003a96200481b565b60405190151581526020016200026f565b62000315620003cb36600462007e5d565b6200494c565b6200024c620003e236600462007f2e565b62004967565b62000261600381565b6200024c6200512f565b6200024c62005446565b62000261600081565b6200024c62005cb7565b6200024c62005f10565b600054620003a99060ff1681565b6200043a62004735565b6200044462005cb7565b60025460405173853d955acef822db058eb8505911ed77f175b99e916001600160a01b031690620004759062007e0c565b6200048292919062007f48565b604051809103906000f0801580156200049f573d6000803e3d6000fd5b50601880546001600160a01b0319166001600160a01b0392909216919091179055565b6018546001546040516337bde4df60e11b81526001600160a01b03918216600482015262000545929190911690636f7bc9be906024015b602060405180830381865afa15801562000517573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053d919062007f62565b600062006123565b60185460408051632856c13d60e11b815290516000926001600160a01b0316916350ad827a91600480830192869291908290030181865afa1580156200058f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620005b991908101906200801f565b9050620005c981516000620062ac565b6018546040805163022b1d8960e21b8152905162000644926001600160a01b0316916308ac76249160048083019260209291908290030181865afa15801562000616573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200063c9190620080fa565b6000620062ac565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200068b9390821692911690678ac7230489e800009060040162008114565b6020604051808303816000875af1158015620006ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006d1919062007f62565b620006e057620006e062008138565b6018546001546040516337bde4df60e11b81526001600160a01b03918216600482015262000763929190911690636f7bc9be906024015b602060405180830381865afa15801562000735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200075b919062007f62565b600162006123565b601860009054906101000a90046001600160a01b03166001600160a01b03166350ad827a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015620007b7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620007e191908101906200801f565b9050620007f181516001620062ac565b62000829816000815181106200080b576200080b6200814e565b6020908102919091010151516001546001600160a01b03166200636f565b6200085e816000815181106200084357620008436200814e565b602002602001015160200151678ac7230489e80000620062ac565b6200088c816000815181106200087857620008786200814e565b6020026020010151604001516000620062ac565b6018546040805163022b1d8960e21b815290516200090e926001600160a01b0316916308ac76249160048083019260209291908290030181865afa158015620008d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008ff9190620080fa565b678ac7230489e80000620062ac565b50565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620009589390821692911690678ac7230489e800009060040162008114565b6020604051808303816000875af115801562000978573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200099e919062007f62565b620009ad57620009ad62008138565b6018546001546040516337bde4df60e11b81526001600160a01b039182166004820152620009e9929190911690636f7bc9be9060240162000717565b60185460408051632856c13d60e11b815290516000926001600160a01b0316916350ad827a91600480830192869291908290030181865afa15801562000a33573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000a5d91908101906200801f565b905062000a6d81516001620062ac565b62000a87816000815181106200080b576200080b6200814e565b62000aa1816000815181106200084357620008436200814e565b62000abb816000815181106200087857620008786200814e565b60025460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f49362000af8939082169291169060040162007f48565b6020604051808303816000875af115801562000b18573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b3e919062007f62565b62000b4d5762000b4d62008138565b6018546001546040516337bde4df60e11b81526001600160a01b03918216600482015262000b89929190911690636f7bc9be90602401620004f9565b601860009054906101000a90046001600160a01b03166001600160a01b03166350ad827a6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000bdd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000c0791908101906200801f565b90506200090e81516000620062ac565b600082841162000c335762000c2d84846200817a565b62000c3f565b62000c3f83856200817a565b90508060000362000c505750505050565b6000841562000c60578462000c62565b835b9050600062000c7384600a6200828d565b62000c8b906b033b2e3c9fd0803ce8000000620082b1565b8262000ca46b033b2e3c9fd0803ce800000086620082c8565b62000cb09190620082b1565b1090508062000d8557604080518181526034818301527f4572726f723a20617070726f782061203d3d2062206e6f742073617469736669606082015273032b2161030b1b1bab930b1bc903234b3b4ba39960651b60808201526020810186905290516000805160206200a6e58339815191529181900360a00190a16000805160206200a6e58339815191528660405162000d4b9190620082e2565b60405180910390a16000805160206200a6e58339815191528560405162000d7391906200831b565b60405180910390a162000d8562006469565b505050505050565b600082841162000da95762000da384846200817a565b62000db5565b62000db583856200817a565b9050818111158062000e9657604080518181526038818301527f4572726f723a20617070726f782061203d3d2062206e6f74207361746973666960608201527f65642c20616363757261637920646966666572656e636520000000000000000060808201526020810185905290516000805160206200a6e58339815191529181900360a00190a16000805160206200a6e58339815191528560405162000e5c9190620082e2565b60405180910390a16000805160206200a6e58339815191528460405162000e8491906200831b565b60405180910390a162000e9662006469565b5050505050565b601854604080516385d4cad360e01b8152905162000f2b926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562000eea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f10919062008346565b73853d955acef822db058eb8505911ed77f175b99e6200636f565b6018546040805163f02c6d8f60e01b8152905162000f78926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa15801562000616573d6000803e3d6000fd5b60185460408051633fc3ddeb60e11b8152905162000fc5926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa15801562000517573d6000803e3d6000fd5b565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200100f93908216929116906801158e460913d000009060040162008114565b6020604051808303816000875af11580156200102f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001055919062007f62565b62001064576200106462008138565b601854600354604051630bca8bcd60e01b81526001600160a01b039182166004820152620010b9929190911690630bca8bcd906024015b602060405180830381865afa15801562000616573d6000803e3d6000fd5b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562001108573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200112e919062007f62565b50601854600154604051630bca8bcd60e01b81526001600160a01b0391821660048201526200116b929190911690630bca8bcd906024016200109b565b601854604051630bca8bcd60e01b81526000600482015262000fc5916001600160a01b031690630bca8bcd906024016200109b565b6018546040805163f02c6d8f60e01b81529051620011ed926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa15801562000616573d6000803e3d6000fd5b60185460408051633fc3ddeb60e11b815290516200123a926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa15801562000517573d6000803e3d6000fd5b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562001289573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012af919062007f62565b620012be57620012be62008138565b6018546040805163f02c6d8f60e01b8152905162001338926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa1580156200130b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013319190620080fa565b42620062ac565b60185460408051633fc3ddeb60e11b8152905162000fc5926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa15801562000735573d6000803e3d6000fd5b601854604080516385d4cad360e01b8152905169d3c21bcecceda1000000926200141a926001600160a01b03909116916385d4cad3916004808201926020929091908290030181865afa158015620013e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001407919062008346565b6018546001600160a01b0316836200656d565b6003546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a6a5833981519152906306447d5690602401600060405180830381600087803b1580156200146f57600080fd5b505af115801562001484573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc9450620014c8939283169290911690869060040162008114565b6020604051808303816000875af1158015620014e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200150e919062007f62565b6200151d576200151d62008138565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af11580156200156c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001592919062007f62565b620015a157620015a162008138565b601854604080516385d4cad360e01b8152905162001646926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620015ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001614919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a08231906024016200109b565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001695573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016bb919062007f62565b620016ca57620016ca62008138565b601854604080516385d4cad360e01b81529051620017ce926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001717573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200173d919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562001787573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017ad9190620080fa565b6064620017bc84600c620082c8565b620017c89190620082b1565b620062ac565b620017dc6224ea0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200182b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001851919062007f62565b62001860576200186062008138565b601854604080516385d4cad360e01b8152905162001952926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620018ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018d3919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa1580156200191d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019439190620080fa565b6064620017bc846014620082c8565b620019606224ea0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620019af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019d5919062007f62565b620019e457620019e462008138565b601854604080516385d4cad360e01b8152905162001ad6926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001a31573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a57919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562001aa1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ac79190620080fa565b6064620017bc84601c620082c8565b62001ae4626ebe0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001b33573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b59919062007f62565b62001b685762001b6862008138565b601854604080516385d4cad360e01b8152905162001c5a926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001bb5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bdb919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562001c25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c4b9190620080fa565b6064620017bc846034620082c8565b62001c6862dd7c0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001cb7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001cdd919062007f62565b62001cec5762001cec62008138565b601854604080516385d4cad360e01b8152905162001dd7926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001d39573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d5f919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a08231906024015b602060405180830381865afa15801562001daa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001dd09190620080fa565b82620062ac565b6000805160206200a6c583398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562001e2557600080fd5b505af115801562000e96573d6000803e3d6000fd5b6003546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262001e869291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007f48565b6020604051808303816000875af115801562001ea6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ecc919062007f62565b1562001edc5762001edc62008138565b6001546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262001f289291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007f48565b6020604051808303816000875af115801562001f48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f6e919062007f62565b1562001f7e5762001f7e62008138565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262001fca9291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007f48565b6020604051808303816000875af115801562001fea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002010919062007f62565b1562002020576200202062008138565b600254601854604080516385d4cad360e01b815290516001600160a01b03938416936305e31e3693169182916385d4cad3916004808201926020929091908290030181865afa15801562002078573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200209e919062008346565b6040518363ffffffff1660e01b8152600401620020bd92919062007f48565b6020604051808303816000875af1158015620020dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002103919062007f62565b1562002113576200211362008138565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e36926200214c9291169060009060040162007f48565b6020604051808303816000875af11580156200216c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002192919062007f62565b15620021a257620021a262008138565b601854620021df9073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906001600160a01b0316620021d9620f42406064620082c8565b6200656d565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e36926200222b9291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007f48565b6020604051808303816000875af11580156200224b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002271919062007f62565b62000fc55762000fc562008138565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620022c79390821692911690678ac7230489e800009060040162008114565b6020604051808303816000875af1158015620022e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200230d919062007f62565b6200231c576200231c62008138565b60035460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f49362002359939082169291169060040162007f48565b6020604051808303816000875af115801562002379573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200239f919062007f62565b15620023af57620023af62008138565b60015460185460405163342e503d60e21b81526001600160a01b039283169263d0b940f492620023e792911690849060040162007f48565b6020604051808303816000875af115801562002407573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200242d919062007f62565b156200243d576200243d62008138565b60025460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f4936200247a939082169291169060040162007f48565b6020604051808303816000875af11580156200249a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024c0919062007f62565b620024cf57620024cf62008138565b6002546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a6a5833981519152906306447d5690602401600060405180830381600087803b1580156200252457600080fd5b505af115801562002539573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f72000000000000000060648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b158015620025d957600080fd5b505af1158015620025ee573d6000803e3d6000fd5b505060185460035460405163084e292f60e31b81526001600160a01b0391821660048201529116925063427149789150602401600060405180830381600087803b1580156200263c57600080fd5b505af115801562002651573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f74206265206164647265737328302900000000000060648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b158015620026f157600080fd5b505af115801562002706573d6000803e3d6000fd5b505060185460405163084e292f60e31b8152600060048201526001600160a01b039091169250634271497891506024015b600060405180830381600087803b1580156200275257600080fd5b505af115801562002767573d6000803e3d6000fd5b505050506000805160206200a6c583398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620027b957600080fd5b505af1158015620027ce573d6000803e3d6000fd5b50505050565b600084158015620027e3575081155b15620027f2575060006200282a565b838303620028025750816200282a565b836200280f81856200817a565b6200281b908762008366565b6200282791906200837d565b90505b949350505050565b6000838152600460208190526040808320805460019091015491516370a0823160e01b81526001600160a01b0387811694820194909452921692909183906370a0823190602401602060405180830381865afa15801562002897573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028bd9190620080fa565b6000546040519192506201000090046001600160a01b0316906370ca10bb908590620028f0908990879060200162008393565b6040516020818303038152906040528051906020012087856200291491906200837d565b6040516001600160e01b031960e086901b1681526200293993929190600401620083ac565b600060405180830381600087803b1580156200295457600080fd5b505af115801562002969573d6000803e3d6000fd5b50506040516370a0823160e01b81526001600160a01b03888116600483015262000d859350861691506370a0823190602401602060405180830381865afa158015620029b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029df9190620080fa565b620017c886846200837d565b601854604080516385d4cad360e01b8152905162002a7c926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562002a38573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a5e919062008346565b6018546001600160a01b03166a0422ca8b0a00a4250000006200656d565b6003546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a6a5833981519152906306447d5690602401600060405180830381600087803b15801562002ad157600080fd5b505af115801562002ae6573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f7200000000000060648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b15801562002b8657600080fd5b505af115801562002b9b573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002bf057600080fd5b505af115801562002c05573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc945062002c5393928316929091169069d3c21bcecceda10000009060040162008114565b6020604051808303816000875af115801562002c73573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c99919062007f62565b62002ca85762002ca862008138565b60405163f28dceb360e01b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b60648201526000805160206200a6a58339815191529063f28dceb390608401600060405180830381600087803b15801562002d3257600080fd5b505af115801562002d47573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002d9c57600080fd5b505af115801562002db1573d6000803e3d6000fd5b5050600254601854604051636de416d560e11b81526001600160a01b0391821660048201529116925063dbc82daa91506024016020604051808303816000875af115801562002e04573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e2a919062007f62565b62002e395762002e3962008138565b601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002e8a57600080fd5b505af115801562002e9f573d6000803e3d6000fd5b5050505062002eb26301dfe20062006581565b601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002f0357600080fd5b505af115801562002f18573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b60648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b15801562002faf57600080fd5b505af115801562002fc4573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200275257600080fd5b6200303b8169152d02c7e14af68000006a52b7d2dcc80cd2e4000000620065dc565b905062003095601860009054906101000a90046001600160a01b03166001600160a01b03166385d4cad36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620013e1573d6000803e3d6000fd5b6003546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a6a5833981519152906306447d5690602401600060405180830381600087803b158015620030ea57600080fd5b505af1158015620030ff573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc945062003143939283169290911690869060040162008114565b6020604051808303816000875af115801562003163573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003189919062007f62565b62003198576200319862008138565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af1158015620031e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200320d919062007f62565b6200321c576200321c62008138565b601854604080516385d4cad360e01b8152905162003269926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620015ee573d6000803e3d6000fd5b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620032b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032de919062007f62565b620032ed57620032ed62008138565b601854604080516385d4cad360e01b81529051620033fa926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa1580156200333a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003360919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620033aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033d09190620080fa565b6064620033df84600c620082c8565b620033eb9190620082b1565b670de0b6b3a764000062000d8d565b620034086224ea0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562003457573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200347d919062007f62565b6200348c576200348c62008138565b601854604080516385d4cad360e01b815290516200357e926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620034d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620034ff919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562003549573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200356f9190620080fa565b6064620033df846014620082c8565b6200358c6224ea0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620035db573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003601919062007f62565b62003610576200361062008138565b601854604080516385d4cad360e01b8152905162003702926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa1580156200365d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003683919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620036cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620036f39190620080fa565b6064620033df84601c620082c8565b62003710626ebe0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200375f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003785919062007f62565b62003794576200379462008138565b601854604080516385d4cad360e01b8152905162001c5a926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620037e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003807919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562003851573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620038779190620080fa565b6064620033df846034620082c8565b600354601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620038cd9390821692911690678ac7230489e800009060040162008114565b6020604051808303816000875af1158015620038ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003913919062007f62565b1562003923576200392362008138565b600154601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc9262003965929116908490678ac7230489e800009060040162008114565b6020604051808303816000875af115801562003985573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620039ab919062007f62565b15620039bb57620039bb62008138565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362003a029390821692911690678ac7230489e800009060040162008114565b6020604051808303816000875af115801562003a22573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003a48919062007f62565b62003a575762003a5762008138565b6002546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a6a5833981519152906306447d5690602401600060405180830381600087803b15801562003aac57600080fd5b505af115801562003ac1573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b60648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b15801562003b5857600080fd5b505af115801562003b6d573d6000803e3d6000fd5b505060185460015460405163ec20b45760e01b81526001600160a01b03928316945063ec20b457935062003bb29290911690678ac7230489e800009060040162008393565b600060405180830381600087803b15801562003bcd57600080fd5b505af115801562003be2573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f742062652061646472657373283029000000000000000060648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b15801562003c8257600080fd5b505af115801562003c97573d6000803e3d6000fd5b505060185460405163ec20b45760e01b81526001600160a01b03909116925063ec20b457915062003cd890600090678ac7230489e800009060040162008393565b600060405180830381600087803b15801562003cf357600080fd5b505af115801562003d08573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b60648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b15801562003da057600080fd5b505af115801562003db5573d6000803e3d6000fd5b505060185460035460405163ec20b45760e01b81526001600160a01b03928316945063ec20b457935062002737929091169060009060040162008393565b60185462003e2a9073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906001600160a01b0316620021d9620f42406064620082c8565b6018546040516370a0823160e01b81526001600160a01b03909116600482015262003ec39073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a08231906024015b602060405180830381865afa15801562003e8d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003eb39190620080fa565b620017c8620f42406064620082c8565b6002546040516370a0823160e01b81526001600160a01b03909116600482015262003f0d9073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a08231906024016200109b565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262003f599291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007f48565b6020604051808303816000875af115801562003f79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003f9f919062007f62565b62003fae5762003fae62008138565b6018546040516370a0823160e01b81526001600160a01b03909116600482015262003ff89073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a08231906024016200109b565b6002546040516370a0823160e01b81526001600160a01b03909116600482015262000fc59073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a082319060240162003e6f565b6000604051620040529062007e1a565b604051809103906000f0801580156200406f573d6000803e3d6000fd5b50600254601854600154604051631b13e53760e21b81529394506001600160a01b0392831693636c4f94dc93620040b8938116921690678ac7230489e800009060040162008114565b6020604051808303816000875af1158015620040d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620040fe919062007f62565b6200410d576200410d62008138565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200415593908216929116906801158e460913d000009060040162008114565b6020604051808303816000875af115801562004175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200419b919062007f62565b620041aa57620041aa62008138565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc92620041ed9291169085906801a055690d9db800009060040162008114565b6020604051808303816000875af11580156200420d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004233919062007f62565b62004242576200424262008138565b6018546001546040516337bde4df60e11b81526001600160a01b0391821660048201526200427e929190911690636f7bc9be9060240162000717565b6018546003546040516337bde4df60e11b81526001600160a01b039182166004820152620042ba929190911690636f7bc9be9060240162000717565b6018546040516337bde4df60e11b81526001600160a01b038381166004830152620042f0921690636f7bc9be9060240162000717565b60185460408051632856c13d60e11b815290516000926001600160a01b0316916350ad827a91600480830192869291908290030181865afa1580156200433a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200436491908101906200801f565b90506200437481516003620062ac565b6200438e816000815181106200080b576200080b6200814e565b620043a8816000815181106200084357620008436200814e565b620043c2816000815181106200087857620008786200814e565b620043fa81600181518110620043dc57620043dc6200814e565b6020908102919091010151516003546001600160a01b03166200636f565b62004430816001815181106200441457620044146200814e565b6020026020010151602001516801158e460913d00000620062ac565b6200444a816001815181106200087857620008786200814e565b62004477816002815181106200446457620044646200814e565b602002602001015160000151836200636f565b620044ad816002815181106200449157620044916200814e565b6020026020010151602001516801a055690d9db80000620062ac565b620044c7816002815181106200087857620008786200814e565b60025460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f49362004504939082169291169060040162007f48565b6020604051808303816000875af115801562004524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200454a919062007f62565b62004559576200455962008138565b6018546001546040516337bde4df60e11b81526001600160a01b03918216600482015262004595929190911690636f7bc9be90602401620004f9565b6018546003546040516337bde4df60e11b81526001600160a01b039182166004820152620045d1929190911690636f7bc9be9060240162000717565b6018546040516337bde4df60e11b81526001600160a01b03848116600483015262004607921690636f7bc9be9060240162000717565b601860009054906101000a90046001600160a01b03166001600160a01b03166350ad827a6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156200465b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200468591908101906200801f565b90506200469581516002620062ac565b620046af816000815181106200446457620044646200814e565b620046c9816000815181106200449157620044916200814e565b620046e3816000815181106200087857620008786200814e565b620046fd81600181518110620043dc57620043dc6200814e565b62004717816001815181106200441457620044146200814e565b62004731816001815181106200087857620008786200814e565b5050565b604051620047439062007e1a565b604051809103906000f08015801562004760573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b03929092169190911790556040516200478f9062007e1a565b604051809103906000f080158015620047ac573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b0392909216919091179055604051620047db9062007e1a565b604051809103906000f080158015620047f8573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008054610100900460ff16156200483c5750600054610100900460ff1690565b60006000805160206200a6a58339815191523b1562004947576040516000906000805160206200a6a5833981519152907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc490620048a99083906519985a5b195960d21b9060200162008393565b60408051601f1981840301815290829052620048c99291602001620083f3565b60408051601f1981840301815290829052620048e59162008426565b6000604051808303816000865af19150503d806000811462004924576040519150601f19603f3d011682016040523d82523d6000602084013e62004929565b606091505b509150508080602001905181019062004943919062007f62565b9150505b919050565b60006200495d8484846000620027d4565b90505b9392505050565b620049898169152d02c7e14af68000006a52b7d2dcc80cd2e4000000620065dc565b905062004a22601860009054906101000a90046001600160a01b03166001600160a01b03166385d4cad36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620049e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004a09919062008346565b6018546001600160a01b0316620021d9846003620082c8565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562004a71573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004a97919062007f62565b62004aa65762004aa662008138565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362004ae59390821692911690869060040162008114565b6020604051808303816000875af115801562004b05573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b2b919062007f62565b62004b3a5762004b3a62008138565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362004b799390821692911690869060040162008114565b6020604051808303816000875af115801562004b99573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004bbf919062007f62565b62004bce5762004bce62008138565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc9262004c08929116908490869060040162008114565b6020604051808303816000875af115801562004c28573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004c4e919062007f62565b62004c5d5762004c5d62008138565b62004c6b6212750062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004cba573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004ce0919062007f62565b62004cef5762004cef62008138565b601854604080516385d4cad360e01b8152905162004d3c926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa1580156200333a573d6000803e3d6000fd5b62004d4a62cb070062006581565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004d99573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004dbf919062007f62565b62004dce5762004dce62008138565b601854604080516385d4cad360e01b8152905162004ec0926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562004e1b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004e41919062008346565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562004e8b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004eb19190620080fa565b6064620033df84603c620082c8565b62004ece62b8920062006581565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004f1d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004f43919062007f62565b62004f525762004f5262008138565b601854604080516385d4cad360e01b8152905162004ff7926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562004f9f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004fc5919062008346565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162001d8c565b620050066301dfe20062006581565b600254601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562005055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200507b919062007f62565b6200508a576200508a62008138565b601854604080516385d4cad360e01b815290516200090e926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620050d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620050fd919062008346565b6002546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162001d8c565b600254601854600354604051631b13e53760e21b815269d3c21bcecceda1000000936001600160a01b0390811693636c4f94dc936200517993918316921690869060040162008114565b6020604051808303816000875af115801562005199573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620051bf919062007f62565b620051ce57620051ce62008138565b6018546003546040516388a772ef60e01b81526001600160a01b0391821660048201526200520a9291909116906388a772ef9060240162001d8c565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005259573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200527f919062007f62565b6200528e576200528e62008138565b6200529c626ebe0062006581565b60006064620052ad836008620082c8565b620052b99190620082b1565b620052c6906003620082c8565b6064620052d584600c620082c8565b620052e19190620082b1565b620052ed91906200837d565b601854600354604051630bca8bcd60e01b81526001600160a01b0391821660048201529293506200532a92911690630bca8bcd9060240162001d8c565b62005339630127500062006581565b606462005348836008620082c8565b620053549190620082b1565b6200536190600b620082c8565b60646200537084600c620082c8565b6200537c9190620082b1565b6200538891906200837d565b601854600354604051630bca8bcd60e01b81526001600160a01b039182166004820152929350620053c592911690630bca8bcd9060240162001d8c565b601854600354604051630bca8bcd60e01b81526001600160a01b03918216600482015262004731929190911690630bca8bcd90602401602060405180830381865afa15801562005419573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200543f9190620080fa565b83620062ac565b601854604080516385d4cad360e01b8152905162005493926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562002a38573d6000803e3d6000fd5b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af1158015620054e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005508919062007f62565b62005517576200551762008138565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362005560939082169291169069d3c21bcecceda10000009060040162008114565b6020604051808303816000875af115801562005580573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620055a6919062007f62565b620055b557620055b562008138565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620055fe939082169291169069d3c21bcecceda10000009060040162008114565b6020604051808303816000875af11580156200561e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005644919062007f62565b62005653576200565362008138565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc926200569792911690849069d3c21bcecceda10000009060040162008114565b6020604051808303816000875af1158015620056b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620056dd919062007f62565b620056ec57620056ec62008138565b620056fa6212750062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562005749573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200576f919062007f62565b6200577e576200577e62008138565b601854604080516385d4cad360e01b8152905162005872926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620057cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620057f1919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa1580156200583b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620058619190620080fa565b691969368974c05b000000620062ac565b6200588062cb070062006581565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620058cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620058f5919062007f62565b62005904576200590462008138565b601854604080516385d4cad360e01b81529051620059f8926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562005951573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005977919062008346565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620059c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620059e79190620080fa565b697f0e10af47c1c7000000620062ac565b62005a0662b8920062006581565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562005a55573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005a7b919062007f62565b62005a8a5762005a8a62008138565b601854604080516385d4cad360e01b8152905162005b7f926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562005ad7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005afd919062008346565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a08231906024015b602060405180830381865afa15801562005b48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005b6e9190620080fa565b69d3c21bcecceda1000000620062ac565b62005b8e6301dfe20062006581565b600254601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562005bdd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005c03919062007f62565b62005c125762005c1262008138565b601854604080516385d4cad360e01b8152905162000fc5926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562005c5f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005c85919062008346565b6002546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162005b2a565b60046020527ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603c80546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481790915560097ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603d557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13e80548216736b175474e89094c44da98b954eedeac495271d0f17905560027f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13f557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf1408054821673aed0c38402a5d19df6e4c03f4e2dced6e29c1ee91790557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d268054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560037f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d27557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d2880548216735f4ec3df9cbd43714fe2740f5e3616155c5b8419179055635742544360e01b60009081527f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691d980548316732260fac5e5542a773aa44fbcfedf7c193bc2c5991790557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691da557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691db805490911673f4030086522a5beea4988f8ca5b36dbc97bee88c179055565b600354601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005f5f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005f85919062007f62565b1562005f955762005f9562008138565b600154601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005fe4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200600a919062007f62565b156200601a576200601a62008138565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562006069573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200608f919062007f62565b6200609e576200609e62008138565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af1158015620060ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006113919062007f62565b1562000fc55762000fc562008138565b8015158215151462004731577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516200619a9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6040820152616c5d60f01b606082015260800190565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf358381620061ed576040518060400160405280600581526020016466616c736560d81b8152506200620b565b604051806040016040528060048152602001637472756560e01b8152505b6040516200621a919062008472565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583826200626d576040518060400160405280600581526020016466616c736560d81b8152506200628b565b604051806040016040528060048152602001637472756560e01b8152505b6040516200629a9190620084b1565b60405180910390a16200473162006469565b80821462004731577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516200631f9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a16000805160206200a6e583398151915281604051620063479190620082e2565b60405180910390a16000805160206200a6e5833981519152826040516200629a91906200831b565b806001600160a01b0316826001600160a01b03161462004731577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620063f79060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464604082015264726573735d60d81b606082015260800190565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f81604051620064309190620084dc565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f826040516200629a919062008521565b6000805160206200a6a58339815191523b156200655c576040516000906000805160206200a6a5833981519152907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc490620064d79083906519985a5b195960d21b90600190602001620083ac565b60408051601f1981840301815290829052620064f79291602001620083f3565b60408051601f1981840301815290829052620065139162008426565b6000604051808303816000865af19150503d806000811462006552576040519150601f19603f3d011682016040523d82523d6000602084013e62006557565b606091505b505050505b6000805461ff001916610100179055565b6200657c83838360006200661d565b505050565b6000805160206200a6a583398151915263e5d6bf02620065a283426200837d565b6040518263ffffffff1660e01b8152600401620065c191815260200190565b600060405180830381600087803b15801562001e2557600080fd5b6000620065eb84848462006826565b9050620049606040518060400160405280600c81526020016b109bdd5b990814995cdd5b1d60a21b8152508262006a1d565b604080516001600160a01b0385811660248084019190915283518084039091018152604490920183526020820180516001600160e01b03166370a0823160e01b1790529151600092871691620066739162008426565b6000604051808303816000865af19150503d8060008114620066b2576040519150601f19603f3d011682016040523d82523d6000602084013e620066b7565b606091505b50915050600081806020019051810190620066d39190620080fa565b90506200670d846200670687620066ff6370a0823160e01b620066f8600a8d62006abd565b9062006ae7565b9062006b05565b9062006b2e565b821562000d855760408051600481526024810182526020810180516001600160e01b03166318160ddd60e01b17905290516000916001600160a01b0389169162006758919062008426565b6000604051808303816000865af19150503d806000811462006797576040519150601f19603f3d011682016040523d82523d6000602084013e6200679c565b606091505b50915050600081806020019051810190620067b89190620080fa565b905082861015620067e357620067cf86846200817a565b620067db90826200817a565b9050620067fe565b620067ef83876200817a565b620067fb90826200837d565b90505b6200681c81620067066318160ddd60e01b620066f8600a8d62006abd565b5050505050505050565b600081831115620068a45760405162461bcd60e51b815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e000060648201526084015b60405180910390fd5b828410158015620068b55750818411155b15620068c357508262004960565b6000620068d184846200817a565b620068de9060016200837d565b905060038511158015620068f157508481115b156200690c576200690385856200837d565b91505062004960565b6200691b60036000196200817a565b851015801562006937575062006934856000196200817a565b81115b1562006957576200694b856000196200817a565b6200690390846200817a565b82851115620069b95760006200696e84876200817a565b905060006200697e838362008366565b905080600003620069955784935050505062004960565b6001620069a382886200837d565b620069af91906200817a565b9350505062006a15565b8385101562006a15576000620069d086866200817a565b90506000620069e0838362008366565b905080600003620069f75785935050505062004960565b62006a0381866200817a565b62006a109060016200837d565b935050505b509392505050565b60006a636f6e736f6c652e6c6f676001600160a01b0316838360405160240162006a499291906200854c565b60408051601f198184030181529181526020820180516001600160e01b0316632d839cb360e21b1790525162006a80919062008426565b600060405180830381855afa9150503d806000811462000d85576040519150601f19603f3d011682016040523d82523d6000602084013e62000d85565b6005820180546001600160a01b0319166001600160a01b0383161790556000825b90505b92915050565b60038201805463ffffffff191660e083901c17905560008262006ade565b6002820180546001810182556000918252602082206001600160a01b0384169101558262006ade565b620047318282600582015460038301546004840154600285018054604080516020808402820181019092528281526001600160a01b039096169560e09590951b946000939092909183018282801562006ba757602002820191906000526020600020905b81548152602001906001019080831162006b92575b5050505050905060008362006bbc8362006e9b565b60405160200162006bcf929190620083f3565b60408051601f198184030181528282526001600160a01b038816600090815260018b0160209081528382206001600160e01b03198a16835281529281209194509092909162006c2391869188910162008570565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff1662006c5e5762006c5c8762006f4f565b505b6001600160a01b0385166000908152602088815260408083206001600160e01b031988168452825280832090519091839162006c9f91879189910162008570565b6040516020818303038152906040528051906020012081526020019081526020016000205460001b9050600080876001600160a01b03168460405162006ce6919062008426565b600060405180830381855afa9150503d806000811462006d23576040519150601f19603f3d011682016040523d82523d6000602084013e62006d28565b606091505b50915062006d4590508162006d3f886020620082c8565b62006f5c565b604051630667f9d760e41b8152909250600091506000805160206200a6a58339815191529063667f9d709062006d82908b90879060040162008393565b602060405180830381865afa15801562006da0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006dc69190620080fa565b905080821462006dea5760405162461bcd60e51b81526004016200689b90620085ac565b6040516370ca10bb60e01b81526000805160206200a6a5833981519152906370ca10bb9062006e22908b9087908e90600401620083ac565b600060405180830381600087803b15801562006e3d57600080fd5b505af115801562006e52573d6000803e3d6000fd5b50505060058b0180546001600160a01b03191690555060038a01805463ffffffff1916905562006e8760028b01600062007e28565b896004016000905550505050505050505050565b606060008251602062006eaf9190620082c8565b67ffffffffffffffff81111562006eca5762006eca62007f82565b6040519080825280601f01601f19166020018201604052801562006ef5576020820181803683370190505b50905060005b835181101562006f4857600084828151811062006f1c5762006f1c6200814e565b60200260200101519050808260200260200184015250808062006f3f9062008647565b91505062006efb565b5092915050565b600062006ae18262006fe6565b6000806000602085511162006f7357845162006f76565b60205b905060005b8181101562006fdc5762006f91816008620082c8565b8662006f9e83886200837d565b8151811062006fb15762006fb16200814e565b01602001516001600160f81b031916901c92909217918062006fd38162008647565b91505062006f7b565b5090949350505050565b600581015460038201546004830154600284018054604080516020808402820181019092528281526000966001600160a01b03169560e01b9493879391929091908301828280156200705857602002820191906000526020600020905b81548152602001906001019080831162007043575b5050506001600160a01b038716600090815260018a01602090815260408083206001600160e01b03198a1684528252808320905195965094919350620070a49250859187910162008570565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff161562007143576001600160a01b0384166000908152602087815260408083206001600160e01b031987168452825280832090519092916200711391859187910162008570565b60405160208183030381529060405280519060200120815260200190815260200160002054945050505050919050565b600083620071518362007cdf565b60405160200162007164929190620083f3565b60405160208183030381529060405290506000805160206200a6c583398151915260001c6001600160a01b031663266cf1096040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620071c357600080fd5b505af1158015620071d8573d6000803e3d6000fd5b50505050600080866001600160a01b031683604051620071f9919062008426565b600060405180830381855afa9150503d806000811462007236576040519150601f19603f3d011682016040523d82523d6000602084013e6200723b565b606091505b5091506200725890508162007252876020620082c8565b62007d8c565b6040516365bc948160e01b81526001600160a01b0389166004820152909250600091506000805160206200a6a5833981519152906365bc9481906024016000604051808303816000875af1158015620072b5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620072df9190810190620086d0565b5090508051600103620075a65760006000805160206200a6c583398151915260001c6001600160a01b031663667f9d7089846000815181106200732657620073266200814e565b60200260200101516040518363ffffffff1660e01b81526004016200734d92919062008393565b602060405180830381865afa1580156200736b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620073919190620080fa565b905080620073f5577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a58883600081518110620073d157620073d16200814e565b602002602001015160001c604051620073ec92919062008393565b60405180910390a15b808314620074175760405162461bcd60e51b81526004016200689b90620085ac565b7f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed888887896040516020016200744f92919062008570565b60405160208183030381529060405280519060200120856000815181106200747b576200747b6200814e565b602002602001015160001c6040516200749894939291906200873b565b60405180910390a181600081518110620074b657620074b66200814e565b6020908102919091018101516001600160a01b038a1660009081528c835260408082206001600160e01b03198c168352845280822090519293909262007501918a918c910162008570565b60408051601f1981840301815291815281516020928301208352828201939093529082016000908120939093556001600160a01b038b16835260018d810182528284206001600160e01b03198c168552825282842092519093916200756b918a918c910162008570565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff19169115159190911790555062007b62565b60018151111562007af15760005b815181101562007aea5760006000805160206200a6c583398151915260001c6001600160a01b031663667f9d708a858581518110620075f757620075f76200814e565b60200260200101516040518363ffffffff1660e01b81526004016200761e92919062008393565b602060405180830381865afa1580156200763c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620076629190620080fa565b905080620076c5577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a589848481518110620076a157620076a16200814e565b602002602001015160001c604051620076bc92919062008393565b60405180910390a15b6000805160206200a6c583398151915260001c6001600160a01b03166370ca10bb8a858581518110620076fc57620076fc6200814e565b602002602001015161133760f01b6040518463ffffffff1660e01b81526004016200772a93929190620083ac565b600060405180830381600087803b1580156200774557600080fd5b505af11580156200775a573d6000803e3d6000fd5b50505050600060608a6001600160a01b0316876040516200777c919062008426565b600060405180830381855afa9150503d8060008114620077b9576040519150601f19603f3d011682016040523d82523d6000602084013e620077be565b606091505b509092509050620077d681620072528b6020620082c8565b9550818015620077ea575061133760f01b86145b1562007a3d577f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed8b8b8a8c6040516020016200782892919062008570565b604051602081830303815290604052805190602001208888815181106200785357620078536200814e565b602002602001015160001c6040516200787094939291906200873b565b60405180910390a18484815181106200788d576200788d6200814e565b6020908102919091018101516001600160a01b038d1660009081528f835260408082206001600160e01b03198f1683528452808220905192939092620078d8918d918f910162008570565b6040516020818303038152906040528051906020012081526020019081526020016000208190555060018d60010160008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c6001600160e01b0319166001600160e01b031916815260200190815260200160002060008a8c6040516020016200796592919062008570565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548160ff0219169083151502179055506000805160206200a6c583398151915260001c6001600160a01b03166370ca10bb8c878781518110620079d757620079d76200814e565b6020026020010151866040518463ffffffff1660e01b815260040162007a0093929190620083ac565b600060405180830381600087803b15801562007a1b57600080fd5b505af115801562007a30573d6000803e3d6000fd5b5050505050505062007aea565b6000805160206200a6c583398151915260001c6001600160a01b03166370ca10bb8c87878151811062007a745762007a746200814e565b6020026020010151866040518463ffffffff1660e01b815260040162007a9d93929190620083ac565b600060405180830381600087803b15801562007ab857600080fd5b505af115801562007acd573d6000803e3d6000fd5b50505050505050808062007ae19062008647565b915050620075b4565b5062007b62565b6040805162461bcd60e51b81526020600482015260248101919091527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e60648201526084016200689b565b6001600160a01b038716600090815260018a01602090815260408083206001600160e01b03198a1684528252808320905190929162007ba69188918a910162008570565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff1662007c355760405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b60648201526084016200689b565b6005890180546001600160a01b031916905560038901805463ffffffff1916905562007c6660028a01600062007e28565b600060048a018190556001600160a01b038816815260208a815260408083206001600160e01b03198a1684528252808320905190929162007cac9188918a910162008570565b60405160208183030381529060405280519060200120815260200190815260200160002054975050505050505050919050565b606060008251602062007cf39190620082c8565b67ffffffffffffffff81111562007d0e5762007d0e62007f82565b6040519080825280601f01601f19166020018201604052801562007d39576020820181803683370190505b50905060005b835181101562006f4857600084828151811062007d605762007d606200814e565b60200260200101519050808260200260200184015250808062007d839062008647565b91505062007d3f565b6000806000602085511162007da357845162007da6565b60205b905060005b8181101562006fdc5762007dc1816008620082c8565b8662007dce83886200837d565b8151811062007de15762007de16200814e565b01602001516001600160f81b031916901c92909217918062007e038162008647565b91505062007dab565b611962806200876c83390190565b6105d7806200a0ce83390190565b50805460008255906000526020600020908101906200090e91905b8082111562007e59576000815560010162007e43565b5090565b60008060006060848603121562007e7357600080fd5b505081359360208301359350604090920135919050565b80151581146200090e57600080fd5b6000806000806080858703121562007eb057600080fd5b843593506020850135925060408501359150606085013562007ed28162007e8a565b939692955090935050565b6001600160a01b03811681146200090e57600080fd5b60008060006060848603121562007f0957600080fd5b83359250602084013562007f1d8162007edd565b929592945050506040919091013590565b60006020828403121562007f4157600080fd5b5035919050565b6001600160a01b0392831681529116602082015260400190565b60006020828403121562007f7557600080fd5b8151620049608162007e8a565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171562007fbe5762007fbe62007f82565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562007ff05762007ff062007f82565b604052919050565b600067ffffffffffffffff82111562008015576200801562007f82565b5060051b60200190565b600060208083850312156200803357600080fd5b825167ffffffffffffffff8111156200804b57600080fd5b8301601f810185136200805d57600080fd5b8051620080746200806e8262007ff8565b62007fc4565b818152606091820283018401918482019190888411156200809457600080fd5b938501935b83851015620080ee5780858a031215620080b35760008081fd5b620080bd62007f98565b8551620080ca8162007edd565b81528587015187820152604080870151908201528352938401939185019162008099565b50979650505050505050565b6000602082840312156200810d57600080fd5b5051919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111562006ae15762006ae162008164565b600181815b80851115620081d1578160001904821115620081b557620081b562008164565b80851615620081c357918102915b93841c939080029062008195565b509250929050565b600082620081ea5750600162006ae1565b81620081f95750600062006ae1565b81600181146200821257600281146200821d576200823d565b600191505062006ae1565b60ff84111562008231576200823162008164565b50506001821b62006ae1565b5060208310610133831016604e8410600b841016171562008262575081810a62006ae1565b6200826e838362008190565b806000190482111562008285576200828562008164565b029392505050565b600062006ade8383620081d9565b634e487b7160e01b600052601260045260246000fd5b600082620082c357620082c36200829b565b500490565b808202811582820484141762006ae15762006ae162008164565b6040815260006200830d60408301600a8152690808115e1c1958dd195960b21b602082015260400190565b905082602083015292915050565b6040815260006200830d60408301600a815269080808081058dd1d585b60b21b602082015260400190565b6000602082840312156200835957600080fd5b8151620049608162007edd565b6000826200837857620083786200829b565b500690565b8082018082111562006ae15762006ae162008164565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b83811015620083ea578181015183820152602001620083d0565b50506000910152565b6001600160e01b031983168152815160009062008418816004850160208701620083cd565b919091016004019392505050565b600082516200843a818460208701620083cd565b9190910192915050565b600081518084526200845e816020860160208601620083cd565b601f01601f19169290920160200192915050565b6040815260006200849d60408301600a8152690808115e1c1958dd195960b21b602082015260400190565b82810360208401526200282a818562008444565b6040815260006200849d60408301600a815269080808081058dd1d585b60b21b602082015260400190565b6040815260006200850760408301600a8152690808115e1c1958dd195960b21b602082015260400190565b6001600160a01b0393909316602092909201919091525090565b6040815260006200850760408301600a815269080808081058dd1d585b60b21b602082015260400190565b60408152600062008561604083018562008444565b90508260208301529392505050565b825160009082906020808701845b838110156200859c578151855293820193908201906001016200857e565b5050948252509092019392505050565b6020808252606f908201527f73746453746f726167652066696e642853746453746f72616765293a2050616360408201527f6b656420736c6f742e205468697320776f756c642063617573652064616e676560608201527f726f7573206f76657277726974696e6720616e642063757272656e746c79206960808201526e39b713ba1039bab83837b93a32b21760891b60a082015260c00190565b6000600182016200865c576200865c62008164565b5060010190565b600082601f8301126200867557600080fd5b81516020620086886200806e8362007ff8565b82815260059290921b84018101918181019086841115620086a857600080fd5b8286015b84811015620086c55780518352918301918301620086ac565b509695505050505050565b60008060408385031215620086e457600080fd5b825167ffffffffffffffff80821115620086fd57600080fd5b6200870b8683870162008663565b935060208501519150808211156200872257600080fd5b50620087318582860162008663565b9150509250929050565b6001600160a01b039490941684526001600160e01b0319929092166020840152604083015260608201526080019056fe60a06040523480156200001157600080fd5b5060405162001962380380620019628339810160408190526200003491620001b2565b600080546001600160a01b0319163390811782556040519091829160008051602062001942833981519152908290a3506001600160a01b0382166080526200007c8162000084565b5050620001ea565b6000546001600160a01b03163314620000e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0381166200014b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620000db565b600080546040516001600160a01b03808516939216916000805160206200194283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b0381168114620001ad57600080fd5b919050565b60008060408385031215620001c657600080fd5b620001d18362000195565b9150620001e16020840162000195565b90509250929050565b60805161172e62000214600039600081816101d7015281816108320152610be5015261172e6000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806385d4cad3116100ad578063d36862e811610071578063d36862e814610251578063dd46706414610264578063ec20b45714610277578063f02c6d8f1461028a578063f2fde38b1461029357600080fd5b806385d4cad3146101d257806388a772ef146102115780638da5cb5b14610224578063a145f1b514610235578063c7e42b1b1461023e57600080fd5b806350ad827a116100f457806350ad827a1461016d5780635b904cb7146101825780636f7bc9be1461018a578063715018a6146101bd5780637f87bbd6146101c557600080fd5b806308ac7624146101265780630bca8bcd1461013d57806342714978146101505780634e71d92d14610165575b600080fd5b6005545b6040519081526020015b60405180910390f35b61012a61014b366004611501565b6102a6565b61016361015e366004611501565b61041e565b005b6101636106ac565b610175610989565b6040516101349190611523565b610163610a0b565b6101ad610198366004611501565b60076020526000908152604090205460ff1681565b6040519015158152602001610134565b610163610aea565b6004546101ad9060ff1681565b6101f97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610134565b61012a61021f366004611501565b610b5e565b6000546001600160a01b03166101f9565b61012a60055481565b61016361024c366004611501565b610bb9565b61012a61025f366004611501565b610f4b565b610163610272366004611585565b610fa6565b61016361028536600461159e565b61103d565b61012a60035481565b6101636102a1366004611501565b611302565b6001600160a01b03811660009081526007602052604081205460ff1680156102d0575060045460ff165b156104115760006102e0836113ec565b905060006102ed84610b5e565b90508060068381548110610303576103036115c8565b90600052602060002090600302016002015410610324575060009392505050565b60006224ea006003544261033891906115f4565b610342919061160d565b90506000606461035384600861162f565b61035d919061160d565b610367908361162f565b606461037485600c61162f565b61037e919061160d565b6103889190611646565b9050828111806103995750600b8210155b156103d557600684815481106103b1576103b16115c8565b906000526020600020906003020160020154836103ce91906115f4565b9050610408565b600684815481106103e8576103e86115c8565b9060005260206000209060030201600201548161040591906115f4565b90505b95945050505050565b506000919050565b919050565b6000546001600160a01b031633146104515760405162461bcd60e51b815260040161044890611659565b60405180910390fd5b6001600160a01b0381166104cd5760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f7420626520616464726573732830290000000000006064820152608401610448565b60006104d8826113ec565b90506000600682815481106104ef576104ef6115c8565b600091825260209182902060408051606081018252600390930290910180546001600160a01b03168352600180820154948401949094526002015490820152600680549193509161053f916115f4565b8154811061054f5761054f6115c8565b906000526020600020906003020160068381548110610570576105706115c8565b60009182526020909120825460039092020180546001600160a01b0319166001600160a01b039092169190911781556001808301548183015560029283015492909101919091556006805483926105c6916115f4565b815481106105d6576105d66115c8565b600091825260209182902083516003929092020180546001600160a01b0319166001600160a01b03909216919091178155908201516001820155604090910151600290910155600680548061062d5761062d61168e565b6000828152602080822060036000199094019384020180546001600160a01b031916815560018101839055600201829055919092556001600160a01b03851680835260079091526040808320805460ff191690555190917fba0013628ccb89af5bb18edf764d3a7b35c07b894848b8e6fd3434719de39c7d91a2505050565b3360009081526007602052604090205460ff1615156001146107365760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f720000000000006064820152608401610448565b60045460ff1661079c5760405162461bcd60e51b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b6064820152608401610448565b60006107a7336102a6565b9050600081116108165760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b6064820152608401610448565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116a4565b6109065760405162461bcd60e51b815260206004820152602a60248201527f56657374696e672e736f6c3a3a636c61696d2829207472616e7366657220756e6044820152691cdd58d8d95cdcd99d5b60b21b6064820152608401610448565b6000610911336113ec565b90508160068281548110610927576109276115c8565b906000526020600020906003020160020160008282546109479190611646565b909155505060408051338152602081018490527fc9ff33ee3842ec05cab3a4e2b17aa19694b6c461ea543be5752366f912a6539d910160405180910390a15050565b60606006805480602002602001604051908101604052809291908181526020016000905b82821015610a02576000848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016109ad565b50505050905090565b6000546001600160a01b03163314610a355760405162461bcd60e51b815260040161044890611659565b60045460ff1615610aae5760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a656e61626c6556657374696e6728292076657360448201527f74696e6720697320616c726561647920656e61626c65640000000000000000006064820152608401610448565b6004805460ff19166001179055426003556040517ff78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa390600090a1565b6000546001600160a01b03163314610b145760405162461bcd60e51b815260040161044890611659565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03811660009081526007602052604081205460ff1615610411576000610b8a836113ec565b905060068181548110610b9f57610b9f6115c8565b906000526020600020906003020160010154915050919050565b6000546001600160a01b03163314610be35760405162461bcd60e51b815260040161044890611659565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610c8a5760405162461bcd60e51b815260206004820152603960248201527f56657374696e672e736f6c3a3a7769746864726177457263323028292063616e60448201527f6e6f74207769746864726177202450524f564520746f6b656e000000000000006064820152608401610448565b6001600160a01b038116610d065760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920746f6b60448201527f656e2063616e6e6f7420626520616464726573732830290000000000000000006064820152608401610448565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7191906116c6565b905060008111610de95760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920696e7360448201527f756666696369656e7420746f6b656e2062616c616e63650000000000000000006064820152608401610448565b6000826001600160a01b031663a9059cbb610e0c6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d91906116a4565b905080610ee75760405162461bcd60e51b815260206004820152603260248201527f56657374696e672e736f6c3a3a776974686472617745726332302829207472616044820152711b9cd9995c881d5b9cdd58d8d95cdcd99d5b60721b6064820152608401610448565b7f3ff9434501bb42cce78344c3420ec1273f8b404aba16aaae994c0d413b91bb4f8383610f1c6000546001600160a01b031690565b604080516001600160a01b039485168152602081019390935292168183015290519081900360600190a1505050565b6001600160a01b03811660009081526007602052604081205460ff1615610411576000610f77836113ec565b905060068181548110610f8c57610f8c6115c8565b906000526020600020906003020160020154915050919050565b6000546001600160a01b03163314610fd05760405162461bcd60e51b815260040161044890611659565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610fff8142611646565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000546001600160a01b031633146110675760405162461bcd60e51b815260040161044890611659565b6001600160a01b03821660009081526007602052604090205460ff16156110ed5760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b6064820152608401610448565b6001600160a01b0382166111695760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f74206265206164647265737328302900000000000000006064820152608401610448565b600081116111d75760405162461bcd60e51b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b6064820152608401610448565b6001600160a01b0382811660008181526007602090815260408083208054600160ff1990911681179091558151606081018352948552918401868152908401838152600680549384018155845293517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600390930292830180546001600160a01b031916919096161790945592517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4084015590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4190920191909155600580548392906112c5908490611646565b90915550506040516001600160a01b038316907f62e6a5118be03f9bfedb79b0ed7ed75ee4a9e15fc4c69d2c4976acde26fa2d5f90600090a25050565b6000546001600160a01b0316331461132c5760405162461bcd60e51b815260040161044890611659565b6001600160a01b0381166113915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610448565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526007602052604081205460ff16151560011461147f5760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f7200000000000000006064820152608401610448565b6000805b6006548110156114e357836001600160a01b0316600682815481106114aa576114aa6115c8565b60009182526020909120600390910201546001600160a01b0316036114d1578091506114e3565b806114db816116df565b915050611483565b5092915050565b80356001600160a01b038116811461041957600080fd5b60006020828403121561151357600080fd5b61151c826114ea565b9392505050565b602080825282518282018190526000919060409081850190868401855b8281101561157857815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101611540565b5091979650505050505050565b60006020828403121561159757600080fd5b5035919050565b600080604083850312156115b157600080fd5b6115ba836114ea565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115611607576116076115de565b92915050565b60008261162a57634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417611607576116076115de565b80820180821115611607576116076115de565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156116b657600080fd5b8151801515811461151c57600080fd5b6000602082840312156116d857600080fd5b5051919050565b6000600182016116f1576116f16115de565b506001019056fea2646970667358221220d2355449aa619c52df97b3ae1052a171b8fa5fa41104c173bef64d6cc1fd6c1b64736f6c634300081100338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0608060405234801561001057600080fd5b506105b7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea2646970667358221220843b2a7925f054aa4267ccb704b85ca5db3172d6fe2b6977a4bbeadddcd28f0164736f6c634300081100330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12db2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a2646970667358221220faefc6049f6baf75498faadfa89c918363fa3341a30b822502f8fa223dfe862364736f6c63430008110033", + "sourceMap": "208:21101:31:-:0;;;1572:26:0;;;-1:-1:-1;;1572:26:0;1594:4;1572:26;;;208:21101:31;;;;;;;;;-1:-1:-1;3122:37:30;3086:77;;;-1:-1:-1;;;;;;3086:77:30;;;;;;208:21101:31;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x60806040523480156200001157600080fd5b50600436106200023d5760003560e01c80638a8fa9b2116200013d578063c060c5f311620000bb578063c947e25d1162000086578063c947e25d14620003fb578063e70dd6cf1462000405578063eea96210146200040e578063f4ceccba1462000418578063fa7626d4146200042257600080fd5b8063c060c5f314620003ba578063c375033d14620003d1578063c5ba73ed14620003e8578063c7283c7814620003f157600080fd5b8063a641e8dc1162000108578063a641e8dc1462000377578063b1857efe1462000381578063b357ca55146200038b578063b967b5a71462000395578063ba414fa6146200039f57600080fd5b80638a8fa9b214620003445780638c38922f146200034e5780638c85288114620003575780639f71f14a146200036e57600080fd5b806356742ce111620001cb57806365dfbcb3116200019657806365dfbcb314620002ea57806369e58f0d14620002f45780636c676a6014620002fe5780637a8fe3c014620003245780637ed9db59146200032d57600080fd5b806356742ce114620002c25780635a17a66b14620002cc5780635f18f11614620002d657806363cbd9c114620002e057600080fd5b806330f7c5c3116200020c57806330f7c5c31462000282578063344b147814620002995780633493f4ca14620002b057806338505fb014620002b957600080fd5b80630a9254e4146200024257806312223997146200024e578063174a5be414620002585780632ef9ccdf1462000278575b600080fd5b6200024c62000430565b005b6200024c620004c2565b62000261600181565b60405160ff90911681526020015b60405180910390f35b6200024c62000814565b6200024c6200029336600462007c3c565b62000b1a565b6200024c620002aa36600462007c3c565b62000c90565b62000261600b81565b62000261600281565b6200024c62000da0565b6200024c62000ef8565b6200024c620010d1565b6200024c620012b6565b6200024c62001d10565b6200024c62002156565b620003156200030f36600462007c78565b620026aa565b6040519081526020016200026f565b62000261600c81565b6200024c6200033e36600462007cd2565b62002708565b6200024c620028c1565b62000261600a81565b6200024c6200036836600462007d0d565b62002e97565b62000261600481565b6200024c620036db565b6200024c62003c48565b6200024c62003e97565b6200024c6200458a565b620003a962004670565b60405190151581526020016200026f565b62000315620003cb36600462007c3c565b620047a1565b6200024c620003e236600462007d0d565b620047bc565b62000261600381565b6200024c62004f22565b6200024c62005239565b62000261600081565b6200024c62005a96565b6200024c62005cef565b600054620003a99060ff1681565b6200043a6200458a565b6200044462005a96565b60025460405173c00e94cb662c3520282e6f5717214004a7f26888916001600160a01b031690620004759062007beb565b6200048292919062007d27565b604051809103906000f0801580156200049f573d6000803e3d6000fd5b50601880546001600160a01b0319166001600160a01b0392909216919091179055565b6018546001546040516337bde4df60e11b81526001600160a01b03918216600482015262000545929190911690636f7bc9be906024015b602060405180830381865afa15801562000517573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053d919062007d41565b600062005f02565b60185460408051632856c13d60e11b815290516000926001600160a01b0316916350ad827a91600480830192869291908290030181865afa1580156200058f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620005b9919081019062007dfe565b9050620005c9815160006200608b565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620006109390821692911690678ac7230489e800009060040162007ed9565b6020604051808303816000875af115801562000630573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000656919062007d41565b62000665576200066562007efd565b6018546001546040516337bde4df60e11b81526001600160a01b039182166004820152620006e8929190911690636f7bc9be906024015b602060405180830381865afa158015620006ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006e0919062007d41565b600162005f02565b601860009054906101000a90046001600160a01b03166001600160a01b03166350ad827a6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156200073c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000766919081019062007dfe565b905062000776815160016200608b565b620007ae8160008151811062000790576200079062007f13565b6020908102919091010151516001546001600160a01b03166200614e565b620007e381600081518110620007c857620007c862007f13565b602002602001015160200151678ac7230489e800006200608b565b6200081181600081518110620007fd57620007fd62007f13565b60200260200101516040015160006200608b565b50565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200085b9390821692911690678ac7230489e800009060040162007ed9565b6020604051808303816000875af11580156200087b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008a1919062007d41565b620008b057620008b062007efd565b6018546001546040516337bde4df60e11b81526001600160a01b039182166004820152620008ec929190911690636f7bc9be906024016200069c565b60185460408051632856c13d60e11b815290516000926001600160a01b0316916350ad827a91600480830192869291908290030181865afa15801562000936573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000960919081019062007dfe565b905062000970815160016200608b565b6200098a8160008151811062000790576200079062007f13565b620009a481600081518110620007c857620007c862007f13565b620009be81600081518110620007fd57620007fd62007f13565b60025460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f493620009fb939082169291169060040162007d27565b6020604051808303816000875af115801562000a1b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a41919062007d41565b62000a505762000a5062007efd565b6018546001546040516337bde4df60e11b81526001600160a01b03918216600482015262000a8c929190911690636f7bc9be90602401620004f9565b601860009054906101000a90046001600160a01b03166001600160a01b03166350ad827a6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000ae0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000b0a919081019062007dfe565b905062000811815160006200608b565b600082841162000b365762000b30848462007f3f565b62000b42565b62000b42838562007f3f565b90508060000362000b535750505050565b6000841562000b63578462000b65565b835b9050600062000b7684600a62008052565b62000b8e906b033b2e3c9fd0803ce800000062008076565b8262000ba76b033b2e3c9fd0803ce8000000866200808d565b62000bb3919062008076565b1090508062000c8857604080518181526034818301527f4572726f723a20617070726f782061203d3d2062206e6f742073617469736669606082015273032b2161030b1b1bab930b1bc903234b3b4ba39960651b60808201526020810186905290516000805160206200a47d8339815191529181900360a00190a16000805160206200a47d8339815191528660405162000c4e9190620080a7565b60405180910390a16000805160206200a47d8339815191528560405162000c769190620080e0565b60405180910390a162000c8862006248565b505050505050565b600082841162000cac5762000ca6848462007f3f565b62000cb8565b62000cb8838562007f3f565b9050818111158062000d9957604080518181526038818301527f4572726f723a20617070726f782061203d3d2062206e6f74207361746973666960608201527f65642c20616363757261637920646966666572656e636520000000000000000060808201526020810185905290516000805160206200a47d8339815191529181900360a00190a16000805160206200a47d8339815191528560405162000d5f9190620080a7565b60405180910390a16000805160206200a47d8339815191528460405162000d879190620080e0565b60405180910390a162000d9962006248565b5050505050565b601854604080516385d4cad360e01b8152905162000e2e926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562000ded573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e1391906200810b565b73c00e94cb662c3520282e6f5717214004a7f268886200614e565b6018546040805163f02c6d8f60e01b8152905162000ea9926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa15801562000e7b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ea191906200812b565b60006200608b565b60185460408051633fc3ddeb60e11b8152905162000ef6926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa15801562000517573d6000803e3d6000fd5b565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362000f4093908216929116906801158e460913d000009060040162007ed9565b6020604051808303816000875af115801562000f60573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f86919062007d41565b62000f955762000f9562007efd565b601854600354604051630bca8bcd60e01b81526001600160a01b03918216600482015262000fea929190911690630bca8bcd906024015b602060405180830381865afa15801562000e7b573d6000803e3d6000fd5b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562001039573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200105f919062007d41565b50601854600154604051630bca8bcd60e01b81526001600160a01b0391821660048201526200109c929190911690630bca8bcd9060240162000fcc565b601854604051630bca8bcd60e01b81526000600482015262000ef6916001600160a01b031690630bca8bcd9060240162000fcc565b6018546040805163f02c6d8f60e01b815290516200111e926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa15801562000e7b573d6000803e3d6000fd5b60185460408051633fc3ddeb60e11b815290516200116b926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa15801562000517573d6000803e3d6000fd5b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af1158015620011ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011e0919062007d41565b620011ef57620011ef62007efd565b6018546040805163f02c6d8f60e01b8152905162001269926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa1580156200123c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200126291906200812b565b426200608b565b60185460408051633fc3ddeb60e11b8152905162000ef6926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa158015620006ba573d6000803e3d6000fd5b60185469d3c21bcecceda100000090620012f09073c00e94cb662c3520282e6f5717214004a7f26888906001600160a01b0316836200634c565b6003546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a43d833981519152906306447d5690602401600060405180830381600087803b1580156200134557600080fd5b505af11580156200135a573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc94506200139e939283169290911690869060040162007ed9565b6020604051808303816000875af1158015620013be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013e4919062007d41565b620013f357620013f362007efd565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562001442573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001468919062007d41565b62001477576200147762007efd565b601854604080516385d4cad360e01b815290516200151c926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620014c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014ea91906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162000fcc565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200156b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001591919062007d41565b620015a057620015a062007efd565b601854604080516385d4cad360e01b81529051620016a4926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620015ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200161391906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa1580156200165d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200168391906200812b565b60646200169284600c6200808d565b6200169e919062008076565b6200608b565b620016b26224ea0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001701573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001727919062007d41565b62001736576200173662007efd565b601854604080516385d4cad360e01b8152905162001828926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001783573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017a991906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620017f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200181991906200812b565b6064620016928460146200808d565b620018366224ea0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001885573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018ab919062007d41565b620018ba57620018ba62007efd565b601854604080516385d4cad360e01b81529051620019ac926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001907573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200192d91906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562001977573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200199d91906200812b565b60646200169284601c6200808d565b620019ba626ebe0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001a09573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a2f919062007d41565b62001a3e5762001a3e62007efd565b601854604080516385d4cad360e01b8152905162001b30926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001a8b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ab191906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562001afb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b2191906200812b565b6064620016928460346200808d565b62001b3e62dd7c0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001b8d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bb3919062007d41565b62001bc25762001bc262007efd565b601854604080516385d4cad360e01b8152905162001cad926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001c0f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c3591906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a08231906024015b602060405180830381865afa15801562001c80573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ca691906200812b565b826200608b565b6000805160206200a45d83398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562001cfb57600080fd5b505af115801562000d99573d6000803e3d6000fd5b6003546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262001d5c9291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007d27565b6020604051808303816000875af115801562001d7c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001da2919062007d41565b1562001db25762001db262007efd565b6001546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262001dfe9291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007d27565b6020604051808303816000875af115801562001e1e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e44919062007d41565b1562001e545762001e5462007efd565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262001ea09291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007d27565b6020604051808303816000875af115801562001ec0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ee6919062007d41565b1562001ef65762001ef662007efd565b600254601854604080516385d4cad360e01b815290516001600160a01b03938416936305e31e3693169182916385d4cad3916004808201926020929091908290030181865afa15801562001f4e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f7491906200810b565b6040518363ffffffff1660e01b815260040162001f9392919062007d27565b6020604051808303816000875af115801562001fb3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fd9919062007d41565b1562001fe95762001fe962007efd565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e3692620020229291169060009060040162007d27565b6020604051808303816000875af115801562002042573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002068919062007d41565b1562002078576200207862007efd565b601854620020b59073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906001600160a01b0316620020af620f424060646200808d565b6200634c565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e3692620021019291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007d27565b6020604051808303816000875af115801562002121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002147919062007d41565b62000ef65762000ef662007efd565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200219d9390821692911690678ac7230489e800009060040162007ed9565b6020604051808303816000875af1158015620021bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620021e3919062007d41565b620021f257620021f262007efd565b60035460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f4936200222f939082169291169060040162007d27565b6020604051808303816000875af11580156200224f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002275919062007d41565b1562002285576200228562007efd565b60015460185460405163342e503d60e21b81526001600160a01b039283169263d0b940f492620022bd92911690849060040162007d27565b6020604051808303816000875af1158015620022dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002303919062007d41565b1562002313576200231362007efd565b60025460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f49362002350939082169291169060040162007d27565b6020604051808303816000875af115801562002370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002396919062007d41565b620023a557620023a562007efd565b6002546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a43d833981519152906306447d5690602401600060405180830381600087803b158015620023fa57600080fd5b505af11580156200240f573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f72000000000000000060648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b158015620024af57600080fd5b505af1158015620024c4573d6000803e3d6000fd5b505060185460035460405163084e292f60e31b81526001600160a01b0391821660048201529116925063427149789150602401600060405180830381600087803b1580156200251257600080fd5b505af115801562002527573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f74206265206164647265737328302900000000000060648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b158015620025c757600080fd5b505af1158015620025dc573d6000803e3d6000fd5b505060185460405163084e292f60e31b8152600060048201526001600160a01b039091169250634271497891506024015b600060405180830381600087803b1580156200262857600080fd5b505af11580156200263d573d6000803e3d6000fd5b505050506000805160206200a45d83398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200268f57600080fd5b505af1158015620026a4573d6000803e3d6000fd5b50505050565b600084158015620026b9575081155b15620026c85750600062002700565b838303620026d857508162002700565b83620026e5818562007f3f565b620026f1908762008145565b620026fd91906200815c565b90505b949350505050565b6000838152600460208190526040808320805460019091015491516370a0823160e01b81526001600160a01b0387811694820194909452921692909183906370a0823190602401602060405180830381865afa1580156200276d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200279391906200812b565b6000546040519192506201000090046001600160a01b0316906370ca10bb908590620027c6908990879060200162008172565b604051602081830303815290604052805190602001208785620027ea91906200815c565b6040516001600160e01b031960e086901b1681526200280f939291906004016200818b565b600060405180830381600087803b1580156200282a57600080fd5b505af11580156200283f573d6000803e3d6000fd5b50506040516370a0823160e01b81526001600160a01b03888116600483015262000c889350861691506370a0823190602401602060405180830381865afa1580156200288f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028b591906200812b565b6200169e86846200815c565b601854620028fa9073c00e94cb662c3520282e6f5717214004a7f26888906001600160a01b03166a0422ca8b0a00a4250000006200634c565b6003546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a43d833981519152906306447d5690602401600060405180830381600087803b1580156200294f57600080fd5b505af115801562002964573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f7200000000000060648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b15801562002a0457600080fd5b505af115801562002a19573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002a6e57600080fd5b505af115801562002a83573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc945062002ad193928316929091169069d3c21bcecceda10000009060040162007ed9565b6020604051808303816000875af115801562002af1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b17919062007d41565b62002b265762002b2662007efd565b60405163f28dceb360e01b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b60648201526000805160206200a43d8339815191529063f28dceb390608401600060405180830381600087803b15801562002bb057600080fd5b505af115801562002bc5573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002c1a57600080fd5b505af115801562002c2f573d6000803e3d6000fd5b5050600254601854604051636de416d560e11b81526001600160a01b0391821660048201529116925063dbc82daa91506024016020604051808303816000875af115801562002c82573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002ca8919062007d41565b62002cb75762002cb762007efd565b601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002d0857600080fd5b505af115801562002d1d573d6000803e3d6000fd5b5050505062002d306301dfe20062006360565b601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002d8157600080fd5b505af115801562002d96573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b60648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b15801562002e2d57600080fd5b505af115801562002e42573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200262857600080fd5b62002eb98169152d02c7e14af68000006a52b7d2dcc80cd2e4000000620063bb565b60185490915062002eea9073c00e94cb662c3520282e6f5717214004a7f26888906001600160a01b0316836200634c565b6003546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a43d833981519152906306447d5690602401600060405180830381600087803b15801562002f3f57600080fd5b505af115801562002f54573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc945062002f98939283169290911690869060040162007ed9565b6020604051808303816000875af115801562002fb8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002fde919062007d41565b62002fed5762002fed62007efd565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af11580156200303c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003062919062007d41565b62003071576200307162007efd565b601854604080516385d4cad360e01b81529051620030be926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620014c4573d6000803e3d6000fd5b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200310d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003133919062007d41565b62003142576200314262007efd565b601854604080516385d4cad360e01b815290516200324f926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa1580156200318f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620031b591906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620031ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200322591906200812b565b60646200323484600c6200808d565b62003240919062008076565b670de0b6b3a764000062000c90565b6200325d6224ea0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620032ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032d2919062007d41565b620032e157620032e162007efd565b601854604080516385d4cad360e01b81529051620033d3926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa1580156200332e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200335491906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa1580156200339e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033c491906200812b565b6064620032348460146200808d565b620033e16224ea0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562003430573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003456919062007d41565b62003465576200346562007efd565b601854604080516385d4cad360e01b8152905162003557926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620034b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620034d891906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562003522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200354891906200812b565b60646200323484601c6200808d565b62003565626ebe0062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620035b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620035da919062007d41565b620035e957620035e962007efd565b601854604080516385d4cad360e01b8152905162001b30926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562003636573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200365c91906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620036a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620036cc91906200812b565b6064620032348460346200808d565b600354601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620037229390821692911690678ac7230489e800009060040162007ed9565b6020604051808303816000875af115801562003742573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003768919062007d41565b1562003778576200377862007efd565b600154601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc92620037ba929116908490678ac7230489e800009060040162007ed9565b6020604051808303816000875af1158015620037da573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003800919062007d41565b1562003810576200381062007efd565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620038579390821692911690678ac7230489e800009060040162007ed9565b6020604051808303816000875af115801562003877573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200389d919062007d41565b620038ac57620038ac62007efd565b6002546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a43d833981519152906306447d5690602401600060405180830381600087803b1580156200390157600080fd5b505af115801562003916573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b60648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b158015620039ad57600080fd5b505af1158015620039c2573d6000803e3d6000fd5b505060185460015460405163ec20b45760e01b81526001600160a01b03928316945063ec20b457935062003a079290911690678ac7230489e800009060040162008172565b600060405180830381600087803b15801562003a2257600080fd5b505af115801562003a37573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f742062652061646472657373283029000000000000000060648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b15801562003ad757600080fd5b505af115801562003aec573d6000803e3d6000fd5b505060185460405163ec20b45760e01b81526001600160a01b03909116925063ec20b457915062003b2d90600090678ac7230489e800009060040162008172565b600060405180830381600087803b15801562003b4857600080fd5b505af115801562003b5d573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b60648201526000805160206200a43d833981519152925063f28dceb39150608401600060405180830381600087803b15801562003bf557600080fd5b505af115801562003c0a573d6000803e3d6000fd5b505060185460035460405163ec20b45760e01b81526001600160a01b03928316945063ec20b45793506200260d929091169060009060040162008172565b60185462003c7f9073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906001600160a01b0316620020af620f424060646200808d565b6018546040516370a0823160e01b81526001600160a01b03909116600482015262003d189073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a08231906024015b602060405180830381865afa15801562003ce2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003d0891906200812b565b6200169e620f424060646200808d565b6002546040516370a0823160e01b81526001600160a01b03909116600482015262003d629073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a082319060240162000fcc565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262003dae9291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007d27565b6020604051808303816000875af115801562003dce573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003df4919062007d41565b62003e035762003e0362007efd565b6018546040516370a0823160e01b81526001600160a01b03909116600482015262003e4d9073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a082319060240162000fcc565b6002546040516370a0823160e01b81526001600160a01b03909116600482015262000ef69073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a082319060240162003cc4565b600060405162003ea79062007bf9565b604051809103906000f08015801562003ec4573d6000803e3d6000fd5b50600254601854600154604051631b13e53760e21b81529394506001600160a01b0392831693636c4f94dc9362003f0d938116921690678ac7230489e800009060040162007ed9565b6020604051808303816000875af115801562003f2d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003f53919062007d41565b62003f625762003f6262007efd565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362003faa93908216929116906801158e460913d000009060040162007ed9565b6020604051808303816000875af115801562003fca573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ff0919062007d41565b62003fff5762003fff62007efd565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc92620040429291169085906801a055690d9db800009060040162007ed9565b6020604051808303816000875af115801562004062573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004088919062007d41565b62004097576200409762007efd565b6018546001546040516337bde4df60e11b81526001600160a01b039182166004820152620040d3929190911690636f7bc9be906024016200069c565b6018546003546040516337bde4df60e11b81526001600160a01b0391821660048201526200410f929190911690636f7bc9be906024016200069c565b6018546040516337bde4df60e11b81526001600160a01b03838116600483015262004145921690636f7bc9be906024016200069c565b60185460408051632856c13d60e11b815290516000926001600160a01b0316916350ad827a91600480830192869291908290030181865afa1580156200418f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620041b9919081019062007dfe565b9050620041c9815160036200608b565b620041e38160008151811062000790576200079062007f13565b620041fd81600081518110620007c857620007c862007f13565b6200421781600081518110620007fd57620007fd62007f13565b6200424f8160018151811062004231576200423162007f13565b6020908102919091010151516003546001600160a01b03166200614e565b620042858160018151811062004269576200426962007f13565b6020026020010151602001516801158e460913d000006200608b565b6200429f81600181518110620007fd57620007fd62007f13565b620042cc81600281518110620042b957620042b962007f13565b602002602001015160000151836200614e565b6200430281600281518110620042e657620042e662007f13565b6020026020010151602001516801a055690d9db800006200608b565b6200431c81600281518110620007fd57620007fd62007f13565b60025460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f49362004359939082169291169060040162007d27565b6020604051808303816000875af115801562004379573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200439f919062007d41565b620043ae57620043ae62007efd565b6018546001546040516337bde4df60e11b81526001600160a01b039182166004820152620043ea929190911690636f7bc9be90602401620004f9565b6018546003546040516337bde4df60e11b81526001600160a01b03918216600482015262004426929190911690636f7bc9be906024016200069c565b6018546040516337bde4df60e11b81526001600160a01b0384811660048301526200445c921690636f7bc9be906024016200069c565b601860009054906101000a90046001600160a01b03166001600160a01b03166350ad827a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015620044b0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620044da919081019062007dfe565b9050620044ea815160026200608b565b6200450481600081518110620042b957620042b962007f13565b6200451e81600081518110620042e657620042e662007f13565b6200453881600081518110620007fd57620007fd62007f13565b620045528160018151811062004231576200423162007f13565b6200456c8160018151811062004269576200426962007f13565b6200458681600181518110620007fd57620007fd62007f13565b5050565b604051620045989062007bf9565b604051809103906000f080158015620045b5573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b0392909216919091179055604051620045e49062007bf9565b604051809103906000f08015801562004601573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b0392909216919091179055604051620046309062007bf9565b604051809103906000f0801580156200464d573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008054610100900460ff1615620046915750600054610100900460ff1690565b60006000805160206200a43d8339815191523b156200479c576040516000906000805160206200a43d833981519152907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc490620046fe9083906519985a5b195960d21b9060200162008172565b60408051601f19818403018152908290526200471e9291602001620081d2565b60408051601f19818403018152908290526200473a9162008205565b6000604051808303816000865af19150503d806000811462004779576040519150601f19603f3d011682016040523d82523d6000602084013e6200477e565b606091505b509150508080602001905181019062004798919062007d41565b9150505b919050565b6000620047b28484846000620026aa565b90505b9392505050565b620047de8169152d02c7e14af68000006a52b7d2dcc80cd2e4000000620063bb565b601854909150620048159073c00e94cb662c3520282e6f5717214004a7f26888906001600160a01b0316620020af8460036200808d565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562004864573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200488a919062007d41565b62004899576200489962007efd565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620048d89390821692911690869060040162007ed9565b6020604051808303816000875af1158015620048f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200491e919062007d41565b6200492d576200492d62007efd565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200496c9390821692911690869060040162007ed9565b6020604051808303816000875af11580156200498c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620049b2919062007d41565b620049c157620049c162007efd565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc92620049fb929116908490869060040162007ed9565b6020604051808303816000875af115801562004a1b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004a41919062007d41565b62004a505762004a5062007efd565b62004a5e6212750062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004aad573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004ad3919062007d41565b62004ae25762004ae262007efd565b601854604080516385d4cad360e01b8152905162004b2f926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa1580156200318f573d6000803e3d6000fd5b62004b3d62cb070062006360565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004b8c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004bb2919062007d41565b62004bc15762004bc162007efd565b601854604080516385d4cad360e01b8152905162004cb3926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562004c0e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004c3491906200810b565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562004c7e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004ca491906200812b565b60646200323484603c6200808d565b62004cc162b8920062006360565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004d10573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004d36919062007d41565b62004d455762004d4562007efd565b601854604080516385d4cad360e01b8152905162004dea926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562004d92573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004db891906200810b565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162001c62565b62004df96301dfe20062006360565b600254601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004e48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004e6e919062007d41565b62004e7d5762004e7d62007efd565b601854604080516385d4cad360e01b8152905162000811926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562004eca573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004ef091906200810b565b6002546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162001c62565b600254601854600354604051631b13e53760e21b815269d3c21bcecceda1000000936001600160a01b0390811693636c4f94dc9362004f6c93918316921690869060040162007ed9565b6020604051808303816000875af115801562004f8c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004fb2919062007d41565b62004fc15762004fc162007efd565b6018546003546040516388a772ef60e01b81526001600160a01b03918216600482015262004ffd9291909116906388a772ef9060240162001c62565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af11580156200504c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005072919062007d41565b62005081576200508162007efd565b6200508f626ebe0062006360565b60006064620050a08360086200808d565b620050ac919062008076565b620050b99060036200808d565b6064620050c884600c6200808d565b620050d4919062008076565b620050e091906200815c565b601854600354604051630bca8bcd60e01b81526001600160a01b0391821660048201529293506200511d92911690630bca8bcd9060240162001c62565b6200512c630127500062006360565b60646200513b8360086200808d565b62005147919062008076565b6200515490600b6200808d565b60646200516384600c6200808d565b6200516f919062008076565b6200517b91906200815c565b601854600354604051630bca8bcd60e01b81526001600160a01b039182166004820152929350620051b892911690630bca8bcd9060240162001c62565b601854600354604051630bca8bcd60e01b81526001600160a01b03918216600482015262004586929190911690630bca8bcd90602401602060405180830381865afa1580156200520c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200523291906200812b565b836200608b565b601854620052729073c00e94cb662c3520282e6f5717214004a7f26888906001600160a01b03166a0422ca8b0a00a4250000006200634c565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af1158015620052c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620052e7919062007d41565b620052f657620052f662007efd565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200533f939082169291169069d3c21bcecceda10000009060040162007ed9565b6020604051808303816000875af11580156200535f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005385919062007d41565b62005394576200539462007efd565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620053dd939082169291169069d3c21bcecceda10000009060040162007ed9565b6020604051808303816000875af1158015620053fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005423919062007d41565b62005432576200543262007efd565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc926200547692911690849069d3c21bcecceda10000009060040162007ed9565b6020604051808303816000875af115801562005496573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620054bc919062007d41565b620054cb57620054cb62007efd565b620054d96212750062006360565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562005528573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200554e919062007d41565b6200555d576200555d62007efd565b601854604080516385d4cad360e01b8152905162005651926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620055aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620055d091906200810b565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa1580156200561a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200564091906200812b565b691969368974c05b0000006200608b565b6200565f62cb070062006360565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620056ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620056d4919062007d41565b620056e357620056e362007efd565b601854604080516385d4cad360e01b81529051620057d7926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562005730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200575691906200810b565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620057a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620057c691906200812b565b697f0e10af47c1c70000006200608b565b620057e562b8920062006360565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562005834573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200585a919062007d41565b62005869576200586962007efd565b601854604080516385d4cad360e01b815290516200595e926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620058b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620058dc91906200810b565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a08231906024015b602060405180830381865afa15801562005927573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200594d91906200812b565b69d3c21bcecceda10000006200608b565b6200596d6301dfe20062006360565b600254601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620059bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620059e2919062007d41565b620059f157620059f162007efd565b601854604080516385d4cad360e01b8152905162000ef6926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562005a3e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005a6491906200810b565b6002546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162005909565b60046020527ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603c80546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481790915560097ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603d557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13e80548216736b175474e89094c44da98b954eedeac495271d0f17905560027f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13f557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf1408054821673aed0c38402a5d19df6e4c03f4e2dced6e29c1ee91790557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d268054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560037f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d27557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d2880548216735f4ec3df9cbd43714fe2740f5e3616155c5b8419179055635742544360e01b60009081527f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691d980548316732260fac5e5542a773aa44fbcfedf7c193bc2c5991790557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691da557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691db805490911673f4030086522a5beea4988f8ca5b36dbc97bee88c179055565b600354601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005d3e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005d64919062007d41565b1562005d745762005d7462007efd565b600154601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005dc3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005de9919062007d41565b1562005df95762005df962007efd565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005e48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005e6e919062007d41565b62005e7d5762005e7d62007efd565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005ecc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005ef2919062007d41565b1562000ef65762000ef662007efd565b8015158215151462004586577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060405162005f799060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6040820152616c5d60f01b606082015260800190565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35838162005fcc576040518060400160405280600581526020016466616c736560d81b81525062005fea565b604051806040016040528060048152602001637472756560e01b8152505b60405162005ff9919062008251565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583826200604c576040518060400160405280600581526020016466616c736560d81b8152506200606a565b604051806040016040528060048152602001637472756560e01b8152505b60405162006079919062008290565b60405180910390a16200458662006248565b80821462004586577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620060fe9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a16000805160206200a47d83398151915281604051620061269190620080a7565b60405180910390a16000805160206200a47d83398151915282604051620060799190620080e0565b806001600160a01b0316826001600160a01b03161462004586577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620061d69060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464604082015264726573735d60d81b606082015260800190565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f816040516200620f9190620082bb565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f8260405162006079919062008300565b6000805160206200a43d8339815191523b156200633b576040516000906000805160206200a43d833981519152907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc490620062b69083906519985a5b195960d21b906001906020016200818b565b60408051601f1981840301815290829052620062d69291602001620081d2565b60408051601f1981840301815290829052620062f29162008205565b6000604051808303816000865af19150503d806000811462006331576040519150601f19603f3d011682016040523d82523d6000602084013e62006336565b606091505b505050505b6000805461ff001916610100179055565b6200635b8383836000620063fc565b505050565b6000805160206200a43d83398151915263e5d6bf026200638183426200815c565b6040518263ffffffff1660e01b8152600401620063a091815260200190565b600060405180830381600087803b15801562001cfb57600080fd5b6000620063ca84848462006605565b9050620047b56040518060400160405280600c81526020016b109bdd5b990814995cdd5b1d60a21b81525082620067fc565b604080516001600160a01b0385811660248084019190915283518084039091018152604490920183526020820180516001600160e01b03166370a0823160e01b1790529151600092871691620064529162008205565b6000604051808303816000865af19150503d806000811462006491576040519150601f19603f3d011682016040523d82523d6000602084013e62006496565b606091505b50915050600081806020019051810190620064b291906200812b565b9050620064ec84620064e587620064de6370a0823160e01b620064d7600a8d6200689c565b90620068c6565b90620068e4565b906200690d565b821562000c885760408051600481526024810182526020810180516001600160e01b03166318160ddd60e01b17905290516000916001600160a01b0389169162006537919062008205565b6000604051808303816000865af19150503d806000811462006576576040519150601f19603f3d011682016040523d82523d6000602084013e6200657b565b606091505b509150506000818060200190518101906200659791906200812b565b905082861015620065c257620065ae868462007f3f565b620065ba908262007f3f565b9050620065dd565b620065ce838762007f3f565b620065da90826200815c565b90505b620065fb81620064e56318160ddd60e01b620064d7600a8d6200689c565b5050505050505050565b600081831115620066835760405162461bcd60e51b815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e000060648201526084015b60405180910390fd5b828410158015620066945750818411155b15620066a2575082620047b5565b6000620066b0848462007f3f565b620066bd9060016200815c565b905060038511158015620066d057508481115b15620066eb57620066e285856200815c565b915050620047b5565b620066fa600360001962007f3f565b8510158015620067165750620067138560001962007f3f565b81115b1562006736576200672a8560001962007f3f565b620066e2908462007f3f565b82851115620067985760006200674d848762007f3f565b905060006200675d838362008145565b9050806000036200677457849350505050620047b5565b60016200678282886200815c565b6200678e919062007f3f565b93505050620067f4565b83851015620067f4576000620067af868662007f3f565b90506000620067bf838362008145565b905080600003620067d657859350505050620047b5565b620067e2818662007f3f565b620067ef9060016200815c565b935050505b509392505050565b60006a636f6e736f6c652e6c6f676001600160a01b03168383604051602401620068289291906200832b565b60408051601f198184030181529181526020820180516001600160e01b0316632d839cb360e21b179052516200685f919062008205565b600060405180830381855afa9150503d806000811462000c88576040519150601f19603f3d011682016040523d82523d6000602084013e62000c88565b6005820180546001600160a01b0319166001600160a01b0383161790556000825b90505b92915050565b60038201805463ffffffff191660e083901c179055600082620068bd565b6002820180546001810182556000918252602082206001600160a01b03841691015582620068bd565b620045868282600582015460038301546004840154600285018054604080516020808402820181019092528281526001600160a01b039096169560e09590951b94600093909290918301828280156200698657602002820191906000526020600020905b81548152602001906001019080831162006971575b505050505090506000836200699b8362006c7a565b604051602001620069ae929190620081d2565b60408051601f198184030181528282526001600160a01b038816600090815260018b0160209081528382206001600160e01b03198a16835281529281209194509092909162006a029186918891016200834f565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff1662006a3d5762006a3b8762006d2e565b505b6001600160a01b0385166000908152602088815260408083206001600160e01b031988168452825280832090519091839162006a7e9187918991016200834f565b6040516020818303038152906040528051906020012081526020019081526020016000205460001b9050600080876001600160a01b03168460405162006ac5919062008205565b600060405180830381855afa9150503d806000811462006b02576040519150601f19603f3d011682016040523d82523d6000602084013e62006b07565b606091505b50915062006b2490508162006b1e8860206200808d565b62006d3b565b604051630667f9d760e41b8152909250600091506000805160206200a43d8339815191529063667f9d709062006b61908b90879060040162008172565b602060405180830381865afa15801562006b7f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006ba591906200812b565b905080821462006bc95760405162461bcd60e51b81526004016200667a906200838b565b6040516370ca10bb60e01b81526000805160206200a43d833981519152906370ca10bb9062006c01908b9087908e906004016200818b565b600060405180830381600087803b15801562006c1c57600080fd5b505af115801562006c31573d6000803e3d6000fd5b50505060058b0180546001600160a01b03191690555060038a01805463ffffffff1916905562006c6660028b01600062007c07565b896004016000905550505050505050505050565b606060008251602062006c8e91906200808d565b67ffffffffffffffff81111562006ca95762006ca962007d61565b6040519080825280601f01601f19166020018201604052801562006cd4576020820181803683370190505b50905060005b835181101562006d2757600084828151811062006cfb5762006cfb62007f13565b60200260200101519050808260200260200184015250808062006d1e9062008426565b91505062006cda565b5092915050565b6000620068c08262006dc5565b6000806000602085511162006d5257845162006d55565b60205b905060005b8181101562006dbb5762006d708160086200808d565b8662006d7d83886200815c565b8151811062006d905762006d9062007f13565b01602001516001600160f81b031916901c92909217918062006db28162008426565b91505062006d5a565b5090949350505050565b600581015460038201546004830154600284018054604080516020808402820181019092528281526000966001600160a01b03169560e01b94938793919290919083018282801562006e3757602002820191906000526020600020905b81548152602001906001019080831162006e22575b5050506001600160a01b038716600090815260018a01602090815260408083206001600160e01b03198a168452825280832090519596509491935062006e83925085918791016200834f565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff161562006f22576001600160a01b0384166000908152602087815260408083206001600160e01b0319871684528252808320905190929162006ef29185918791016200834f565b60405160208183030381529060405280519060200120815260200190815260200160002054945050505050919050565b60008362006f308362007abe565b60405160200162006f43929190620081d2565b60405160208183030381529060405290506000805160206200a45d83398151915260001c6001600160a01b031663266cf1096040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562006fa257600080fd5b505af115801562006fb7573d6000803e3d6000fd5b50505050600080866001600160a01b03168360405162006fd8919062008205565b600060405180830381855afa9150503d806000811462007015576040519150601f19603f3d011682016040523d82523d6000602084013e6200701a565b606091505b50915062007037905081620070318760206200808d565b62007b6b565b6040516365bc948160e01b81526001600160a01b0389166004820152909250600091506000805160206200a43d833981519152906365bc9481906024016000604051808303816000875af115801562007094573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620070be9190810190620084af565b5090508051600103620073855760006000805160206200a45d83398151915260001c6001600160a01b031663667f9d70898460008151811062007105576200710562007f13565b60200260200101516040518363ffffffff1660e01b81526004016200712c92919062008172565b602060405180830381865afa1580156200714a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200717091906200812b565b905080620071d4577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a58883600081518110620071b057620071b062007f13565b602002602001015160001c604051620071cb92919062008172565b60405180910390a15b808314620071f65760405162461bcd60e51b81526004016200667a906200838b565b7f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed888887896040516020016200722e9291906200834f565b60405160208183030381529060405280519060200120856000815181106200725a576200725a62007f13565b602002602001015160001c6040516200727794939291906200851a565b60405180910390a18160008151811062007295576200729562007f13565b6020908102919091018101516001600160a01b038a1660009081528c835260408082206001600160e01b03198c1683528452808220905192939092620072e0918a918c91016200834f565b60408051601f1981840301815291815281516020928301208352828201939093529082016000908120939093556001600160a01b038b16835260018d810182528284206001600160e01b03198c168552825282842092519093916200734a918a918c91016200834f565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff19169115159190911790555062007941565b600181511115620078d05760005b8151811015620078c95760006000805160206200a45d83398151915260001c6001600160a01b031663667f9d708a858581518110620073d657620073d662007f13565b60200260200101516040518363ffffffff1660e01b8152600401620073fd92919062008172565b602060405180830381865afa1580156200741b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200744191906200812b565b905080620074a4577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a58984848151811062007480576200748062007f13565b602002602001015160001c6040516200749b92919062008172565b60405180910390a15b6000805160206200a45d83398151915260001c6001600160a01b03166370ca10bb8a858581518110620074db57620074db62007f13565b602002602001015161133760f01b6040518463ffffffff1660e01b815260040162007509939291906200818b565b600060405180830381600087803b1580156200752457600080fd5b505af115801562007539573d6000803e3d6000fd5b50505050600060608a6001600160a01b0316876040516200755b919062008205565b600060405180830381855afa9150503d806000811462007598576040519150601f19603f3d011682016040523d82523d6000602084013e6200759d565b606091505b509092509050620075b581620070318b60206200808d565b9550818015620075c9575061133760f01b86145b156200781c577f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed8b8b8a8c604051602001620076079291906200834f565b6040516020818303038152906040528051906020012088888151811062007632576200763262007f13565b602002602001015160001c6040516200764f94939291906200851a565b60405180910390a18484815181106200766c576200766c62007f13565b6020908102919091018101516001600160a01b038d1660009081528f835260408082206001600160e01b03198f1683528452808220905192939092620076b7918d918f91016200834f565b6040516020818303038152906040528051906020012081526020019081526020016000208190555060018d60010160008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c6001600160e01b0319166001600160e01b031916815260200190815260200160002060008a8c604051602001620077449291906200834f565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548160ff0219169083151502179055506000805160206200a45d83398151915260001c6001600160a01b03166370ca10bb8c878781518110620077b657620077b662007f13565b6020026020010151866040518463ffffffff1660e01b8152600401620077df939291906200818b565b600060405180830381600087803b158015620077fa57600080fd5b505af11580156200780f573d6000803e3d6000fd5b50505050505050620078c9565b6000805160206200a45d83398151915260001c6001600160a01b03166370ca10bb8c87878151811062007853576200785362007f13565b6020026020010151866040518463ffffffff1660e01b81526004016200787c939291906200818b565b600060405180830381600087803b1580156200789757600080fd5b505af1158015620078ac573d6000803e3d6000fd5b505050505050508080620078c09062008426565b91505062007393565b5062007941565b6040805162461bcd60e51b81526020600482015260248101919091527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e60648201526084016200667a565b6001600160a01b038716600090815260018a01602090815260408083206001600160e01b03198a16845282528083209051909291620079859188918a91016200834f565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff1662007a145760405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b60648201526084016200667a565b6005890180546001600160a01b031916905560038901805463ffffffff1916905562007a4560028a01600062007c07565b600060048a018190556001600160a01b038816815260208a815260408083206001600160e01b03198a1684528252808320905190929162007a8b9188918a91016200834f565b60405160208183030381529060405280519060200120815260200190815260200160002054975050505050505050919050565b606060008251602062007ad291906200808d565b67ffffffffffffffff81111562007aed5762007aed62007d61565b6040519080825280601f01601f19166020018201604052801562007b18576020820181803683370190505b50905060005b835181101562006d2757600084828151811062007b3f5762007b3f62007f13565b60200260200101519050808260200260200184015250808062007b629062008426565b91505062007b1e565b6000806000602085511162007b8257845162007b85565b60205b905060005b8181101562006dbb5762007ba08160086200808d565b8662007bad83886200815c565b8151811062007bc05762007bc062007f13565b01602001516001600160f81b031916901c92909217918062007be28162008426565b91505062007b8a565b61191b806200854b83390190565b6105d78062009e6683390190565b50805460008255906000526020600020908101906200081191905b8082111562007c38576000815560010162007c22565b5090565b60008060006060848603121562007c5257600080fd5b505081359360208301359350604090920135919050565b80151581146200081157600080fd5b6000806000806080858703121562007c8f57600080fd5b843593506020850135925060408501359150606085013562007cb18162007c69565b939692955090935050565b6001600160a01b03811681146200081157600080fd5b60008060006060848603121562007ce857600080fd5b83359250602084013562007cfc8162007cbc565b929592945050506040919091013590565b60006020828403121562007d2057600080fd5b5035919050565b6001600160a01b0392831681529116602082015260400190565b60006020828403121562007d5457600080fd5b8151620047b58162007c69565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171562007d9d5762007d9d62007d61565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562007dcf5762007dcf62007d61565b604052919050565b600067ffffffffffffffff82111562007df45762007df462007d61565b5060051b60200190565b6000602080838503121562007e1257600080fd5b825167ffffffffffffffff81111562007e2a57600080fd5b8301601f8101851362007e3c57600080fd5b805162007e5362007e4d8262007dd7565b62007da3565b8181526060918202830184019184820191908884111562007e7357600080fd5b938501935b8385101562007ecd5780858a03121562007e925760008081fd5b62007e9c62007d77565b855162007ea98162007cbc565b81528587015187820152604080870151908201528352938401939185019162007e78565b50979650505050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115620068c057620068c062007f29565b600181815b8085111562007f9657816000190482111562007f7a5762007f7a62007f29565b8085161562007f8857918102915b93841c939080029062007f5a565b509250929050565b60008262007faf57506001620068c0565b8162007fbe57506000620068c0565b816001811462007fd7576002811462007fe25762008002565b6001915050620068c0565b60ff84111562007ff65762007ff662007f29565b50506001821b620068c0565b5060208310610133831016604e8410600b841016171562008027575081810a620068c0565b62008033838362007f55565b80600019048211156200804a576200804a62007f29565b029392505050565b6000620068bd838362007f9e565b634e487b7160e01b600052601260045260246000fd5b60008262008088576200808862008060565b500490565b8082028115828204841417620068c057620068c062007f29565b604081526000620080d260408301600a8152690808115e1c1958dd195960b21b602082015260400190565b905082602083015292915050565b604081526000620080d260408301600a815269080808081058dd1d585b60b21b602082015260400190565b6000602082840312156200811e57600080fd5b8151620047b58162007cbc565b6000602082840312156200813e57600080fd5b5051919050565b60008262008157576200815762008060565b500690565b80820180821115620068c057620068c062007f29565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b83811015620081c9578181015183820152602001620081af565b50506000910152565b6001600160e01b0319831681528151600090620081f7816004850160208701620081ac565b919091016004019392505050565b6000825162008219818460208701620081ac565b9190910192915050565b600081518084526200823d816020860160208601620081ac565b601f01601f19169290920160200192915050565b6040815260006200827c60408301600a8152690808115e1c1958dd195960b21b602082015260400190565b828103602084015262002700818562008223565b6040815260006200827c60408301600a815269080808081058dd1d585b60b21b602082015260400190565b604081526000620082e660408301600a8152690808115e1c1958dd195960b21b602082015260400190565b6001600160a01b0393909316602092909201919091525090565b604081526000620082e660408301600a815269080808081058dd1d585b60b21b602082015260400190565b60408152600062008340604083018562008223565b90508260208301529392505050565b825160009082906020808701845b838110156200837b578151855293820193908201906001016200835d565b5050948252509092019392505050565b6020808252606f908201527f73746453746f726167652066696e642853746453746f72616765293a2050616360408201527f6b656420736c6f742e205468697320776f756c642063617573652064616e676560608201527f726f7573206f76657277726974696e6720616e642063757272656e746c79206960808201526e39b713ba1039bab83837b93a32b21760891b60a082015260c00190565b6000600182016200843b576200843b62007f29565b5060010190565b600082601f8301126200845457600080fd5b815160206200846762007e4d8362007dd7565b82815260059290921b840181019181810190868411156200848757600080fd5b8286015b84811015620084a457805183529183019183016200848b565b509695505050505050565b60008060408385031215620084c357600080fd5b825167ffffffffffffffff80821115620084dc57600080fd5b620084ea8683870162008442565b935060208501519150808211156200850157600080fd5b50620085108582860162008442565b9150509250929050565b6001600160a01b039490941684526001600160e01b0319929092166020840152604083015260608201526080019056fe60a06040523480156200001157600080fd5b506040516200191b3803806200191b8339810160408190526200003491620001b2565b600080546001600160a01b03191633908117825560405190918291600080516020620018fb833981519152908290a3506001600160a01b0382166080526200007c8162000084565b5050620001ea565b6000546001600160a01b03163314620000e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0381166200014b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620000db565b600080546040516001600160a01b0380851693921691600080516020620018fb83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b0381168114620001ad57600080fd5b919050565b60008060408385031215620001c657600080fd5b620001d18362000195565b9150620001e16020840162000195565b90509250929050565b6080516116e762000214600039600081816101bd0152818161080f0152610bc201526116e76000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806385d4cad3116100a2578063d36862e811610071578063d36862e81461022e578063dd46706414610241578063ec20b45714610254578063f02c6d8f14610267578063f2fde38b1461027057600080fd5b806385d4cad3146101b857806388a772ef146101f75780638da5cb5b1461020a578063c7e42b1b1461021b57600080fd5b80635b904cb7116100de5780635b904cb7146101685780636f7bc9be14610170578063715018a6146101a35780637f87bbd6146101ab57600080fd5b80630bca8bcd1461011057806342714978146101365780634e71d92d1461014b57806350ad827a14610153575b600080fd5b61012361011e3660046114ba565b610283565b6040519081526020015b60405180910390f35b6101496101443660046114ba565b6103fb565b005b610149610689565b61015b610966565b60405161012d91906114dc565b6101496109e8565b61019361017e3660046114ba565b60066020526000908152604090205460ff1681565b604051901515815260200161012d565b610149610ac7565b6004546101939060ff1681565b6101df7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161012d565b6101236102053660046114ba565b610b3b565b6000546001600160a01b03166101df565b6101496102293660046114ba565b610b96565b61012361023c3660046114ba565b610f28565b61014961024f36600461153e565b610f83565b610149610262366004611557565b61101a565b61012360035481565b61014961027e3660046114ba565b6112bb565b6001600160a01b03811660009081526006602052604081205460ff1680156102ad575060045460ff165b156103ee5760006102bd836113a5565b905060006102ca84610b3b565b905080600583815481106102e0576102e0611581565b90600052602060002090600302016002015410610301575060009392505050565b60006224ea006003544261031591906115ad565b61031f91906115c6565b9050600060646103308460086115e8565b61033a91906115c6565b61034490836115e8565b606461035185600c6115e8565b61035b91906115c6565b61036591906115ff565b9050828111806103765750600b8210155b156103b2576005848154811061038e5761038e611581565b906000526020600020906003020160020154836103ab91906115ad565b90506103e5565b600584815481106103c5576103c5611581565b906000526020600020906003020160020154816103e291906115ad565b90505b95945050505050565b506000919050565b919050565b6000546001600160a01b0316331461042e5760405162461bcd60e51b815260040161042590611612565b60405180910390fd5b6001600160a01b0381166104aa5760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f7420626520616464726573732830290000000000006064820152608401610425565b60006104b5826113a5565b90506000600582815481106104cc576104cc611581565b600091825260209182902060408051606081018252600390930290910180546001600160a01b03168352600180820154948401949094526002015490820152600580549193509161051c916115ad565b8154811061052c5761052c611581565b90600052602060002090600302016005838154811061054d5761054d611581565b60009182526020909120825460039092020180546001600160a01b0319166001600160a01b039092169190911781556001808301548183015560029283015492909101919091556005805483926105a3916115ad565b815481106105b3576105b3611581565b600091825260209182902083516003929092020180546001600160a01b0319166001600160a01b03909216919091178155908201516001820155604090910151600290910155600580548061060a5761060a611647565b6000828152602080822060036000199094019384020180546001600160a01b031916815560018101839055600201829055919092556001600160a01b03851680835260069091526040808320805460ff191690555190917fba0013628ccb89af5bb18edf764d3a7b35c07b894848b8e6fd3434719de39c7d91a2505050565b3360009081526006602052604090205460ff1615156001146107135760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f720000000000006064820152608401610425565b60045460ff166107795760405162461bcd60e51b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b6064820152608401610425565b600061078433610283565b9050600081116107f35760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b6064820152608401610425565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610860573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610884919061165d565b6108e35760405162461bcd60e51b815260206004820152602a60248201527f56657374696e672e736f6c3a3a636c61696d2829207472616e7366657220756e6044820152691cdd58d8d95cdcd99d5b60b21b6064820152608401610425565b60006108ee336113a5565b9050816005828154811061090457610904611581565b9060005260206000209060030201600201600082825461092491906115ff565b909155505060408051338152602081018490527fc9ff33ee3842ec05cab3a4e2b17aa19694b6c461ea543be5752366f912a6539d910160405180910390a15050565b60606005805480602002602001604051908101604052809291908181526020016000905b828210156109df576000848152602090819020604080516060810182526003860290920180546001600160a01b031683526001808201548486015260029091015491830191909152908352909201910161098a565b50505050905090565b6000546001600160a01b03163314610a125760405162461bcd60e51b815260040161042590611612565b60045460ff1615610a8b5760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a656e61626c6556657374696e6728292076657360448201527f74696e6720697320616c726561647920656e61626c65640000000000000000006064820152608401610425565b6004805460ff19166001179055426003556040517ff78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa390600090a1565b6000546001600160a01b03163314610af15760405162461bcd60e51b815260040161042590611612565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03811660009081526006602052604081205460ff16156103ee576000610b67836113a5565b905060058181548110610b7c57610b7c611581565b906000526020600020906003020160010154915050919050565b6000546001600160a01b03163314610bc05760405162461bcd60e51b815260040161042590611612565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610c675760405162461bcd60e51b815260206004820152603960248201527f56657374696e672e736f6c3a3a7769746864726177457263323028292063616e60448201527f6e6f74207769746864726177202450524f564520746f6b656e000000000000006064820152608401610425565b6001600160a01b038116610ce35760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920746f6b60448201527f656e2063616e6e6f7420626520616464726573732830290000000000000000006064820152608401610425565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4e919061167f565b905060008111610dc65760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920696e7360448201527f756666696369656e7420746f6b656e2062616c616e63650000000000000000006064820152608401610425565b6000826001600160a01b031663a9059cbb610de96000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a919061165d565b905080610ec45760405162461bcd60e51b815260206004820152603260248201527f56657374696e672e736f6c3a3a776974686472617745726332302829207472616044820152711b9cd9995c881d5b9cdd58d8d95cdcd99d5b60721b6064820152608401610425565b7f3ff9434501bb42cce78344c3420ec1273f8b404aba16aaae994c0d413b91bb4f8383610ef96000546001600160a01b031690565b604080516001600160a01b039485168152602081019390935292168183015290519081900360600190a1505050565b6001600160a01b03811660009081526006602052604081205460ff16156103ee576000610f54836113a5565b905060058181548110610f6957610f69611581565b906000526020600020906003020160020154915050919050565b6000546001600160a01b03163314610fad5760405162461bcd60e51b815260040161042590611612565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610fdc81426115ff565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000546001600160a01b031633146110445760405162461bcd60e51b815260040161042590611612565b6001600160a01b03821660009081526006602052604090205460ff16156110ca5760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b6064820152608401610425565b6001600160a01b0382166111465760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f74206265206164647265737328302900000000000000006064820152608401610425565b600081116111b45760405162461bcd60e51b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b6064820152608401610425565b6001600160a01b0382811660008181526006602090815260408083208054600160ff1990911681179091558151606081018352858152928301878152838301858152600580549384018155865293517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0600390930292830180546001600160a01b031916919098161790965594517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db186015590517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db290940193909355915190917f62e6a5118be03f9bfedb79b0ed7ed75ee4a9e15fc4c69d2c4976acde26fa2d5f91a25050565b6000546001600160a01b031633146112e55760405162461bcd60e51b815260040161042590611612565b6001600160a01b03811661134a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610425565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526006602052604081205460ff1615156001146114385760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f7200000000000000006064820152608401610425565b6000805b60055481101561149c57836001600160a01b03166005828154811061146357611463611581565b60009182526020909120600390910201546001600160a01b03160361148a5780915061149c565b8061149481611698565b91505061143c565b5092915050565b80356001600160a01b03811681146103f657600080fd5b6000602082840312156114cc57600080fd5b6114d5826114a3565b9392505050565b602080825282518282018190526000919060409081850190868401855b8281101561153157815180516001600160a01b03168552868101518786015285015185850152606090930192908501906001016114f9565b5091979650505050505050565b60006020828403121561155057600080fd5b5035919050565b6000806040838503121561156a57600080fd5b611573836114a3565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156115c0576115c0611597565b92915050565b6000826115e357634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176115c0576115c0611597565b808201808211156115c0576115c0611597565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561166f57600080fd5b815180151581146114d557600080fd5b60006020828403121561169157600080fd5b5051919050565b6000600182016116aa576116aa611597565b506001019056fea2646970667358221220157b3eae9a1ae2e7d7cc252855d7fcf62c788bb02ed633aa778f7e49daee3f3f64736f6c634300081100338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0608060405234801561001057600080fd5b506105b7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea26469706673582212202284e67777fca07e29094068d3e700ce3ff463464acf1e2573fcb253960d116864736f6c634300081100330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12db2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a264697066735822122001f97d8f0115722a44b8d4dc385b0808a65cc16612d33a55c6c6022e01d8357464736f6c63430008110033", - "sourceMap": "183:21347:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;252:412;;;:::i;:::-;;5145:748;;;:::i;1671:36:19:-;;1706:1;1671:36;;;;;186:4:21;174:17;;;156:36;;144:2;129:18;1671:36:19;;;;;;;;7155:881:20;;;:::i;4666:583:19:-;;;;;;:::i;:::-;;:::i;5300:479::-;;;;;;:::i;:::-;;:::i;2104:45::-;;2147:2;2104:45;;1755:36;;1790:1;1755:36;;700:254:20;;;:::i;10208:627::-;;;:::i;1705:443::-;;;:::i;13225:1924::-;;;:::i;2243:967::-;;;:::i;5991:1102::-;;;:::i;5954:291:19:-;;;;;;:::i;:::-;;:::i;:::-;;;1244:25:21;;;1232:2;1217:18;5954:291:19;1098:177:21;2188:45:19;;2231:2;2188:45;;4147:461;;;;;;:::i;:::-;;:::i;12058:1114:20:-;;;:::i;2018:45:19:-;;2061:2;2018:45;;17340:2006:20;;;;;;:::i;:::-;;:::i;1931:36:19:-;;1966:1;1931:36;;3923:1165:20;;;:::i;3270:563::-;;;:::i;8131:1974::-;;;:::i;3238:184:19:-;;;:::i;1819:584:0:-;;;:::i;:::-;;;2154:14:21;;2147:22;2129:41;;2117:2;2102:18;1819:584:0;1989:187:21;5787:159:19;;;;;;:::i;:::-;;:::i;19410:2115:20:-;;;;;;:::i;:::-;;:::i;1842:36:19:-;;1877:1;1842:36;;10885:1093:20;;;:::i;15199:2074::-;;;:::i;1581:36:19:-;;1616:1;1581:36;;3546:551;;;:::i;1049:596:20:-;;;:::i;1572:26:0:-;;;;;;;;;252:412:20;287:14;:12;:14::i;:::-;312:13;:11;:13::i;:::-;641:3;;384:272;;573:42;;-1:-1:-1;;;;;641:3:20;;384:272;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;374:7:20;:282;;-1:-1:-1;;;;;;374:282:20;-1:-1:-1;;;;;374:282:20;;;;;;;;;;252:412::o;5145:748::-;5251:7;;;5277:3;5251:31;;-1:-1:-1;;;5251:31:20;;-1:-1:-1;;;;;5277:3:20;;;5251:31;;;2636:51:21;5242:53:20;;5251:7;;;;;:17;;2609:18:21;;5251:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5289:5;5242:8;:53::i;:::-;5342:7;;:28;;;-1:-1:-1;;;5342:28:20;;;;5306:33;;-1:-1:-1;;;;;5342:7:20;;:26;;:28;;;;;5306:33;;5342:28;;;;;;;:7;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5342:28:20;;;;;;;;;;;;:::i;:::-;5306:64;;5381:36;5390:7;:14;5415:1;5381:8;:36::i;:::-;5469:3;;5497:7;;5469:3;5515;5469:61;;-1:-1:-1;;;5469:61:20;;-1:-1:-1;;;;;5469:3:20;;;;:19;;:61;;5497:7;;;;5515:3;;;5521:8;;5469:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5462:69;;;;:::i;:::-;5583:7;;;5609:3;5583:31;;-1:-1:-1;;;5583:31:20;;-1:-1:-1;;;;;5609:3:20;;;5583:31;;;2636:51:21;5574:52:20;;5583:7;;;;;:17;;2609:18:21;;5583:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5621:4;5574:8;:52::i;:::-;5647:7;;;;;;;;;-1:-1:-1;;;;;5647:7:20;-1:-1:-1;;;;;5647:26:20;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5647:28:20;;;;;;;;;;;;:::i;:::-;5637:38;;5686:37;5695:7;:14;5721:1;5686:8;:37::i;:::-;5734:48;5743:7;5751:1;5743:10;;;;;;;;:::i;:::-;;;;;;;;;;;:18;5777:3;;-1:-1:-1;;;;;5777:3:20;5734:8;:48::i;:::-;5793:44;5802:7;5810:1;5802:10;;;;;;;;:::i;:::-;;;;;;;:23;;;5828:8;5793;:44::i;:::-;5848:37;5857:7;5865:1;5857:10;;;;;;;;:::i;:::-;;;;;;;:24;;;5883:1;5848:8;:37::i;:::-;5202:691;5145:748::o;7155:881::-;7287:3;;7315:7;;7287:3;7333;7287:61;;-1:-1:-1;;;7287:61:20;;-1:-1:-1;;;;;7287:3:20;;;;:19;;:61;;7315:7;;;;7333:3;;;7339:8;;7287:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7280:69;;;;:::i;:::-;7400:7;;;7426:3;7400:31;;-1:-1:-1;;;7400:31:20;;-1:-1:-1;;;;;7426:3:20;;;7400:31;;;2636:51:21;7391:52:20;;7400:7;;;;;:17;;2609:18:21;;7400:31:20;2490:203:21;7391:52:20;7490:7;;:28;;;-1:-1:-1;;;7490:28:20;;;;7454:33;;-1:-1:-1;;;;;7490:7:20;;:26;;:28;;;;;7454:33;;7490:28;;;;;;;:7;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7490:28:20;;;;;;;;;;;;:::i;:::-;7454:64;;7529:36;7538:7;:14;7563:1;7529:8;:36::i;:::-;7576:48;7585:7;7593:1;7585:10;;;;;;;;:::i;7576:48::-;7635:44;7644:7;7652:1;7644:10;;;;;;;;:::i;7635:44::-;7690:37;7699:7;7707:1;7699:10;;;;;;;;:::i;7690:37::-;7781:3;;7812:7;;7781:3;7830;7781:54;;-1:-1:-1;;;7781:54:20;;-1:-1:-1;;;;;7781:3:20;;;;:22;;:54;;7812:7;;;;7830:3;;;7781:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7774:62;;;;:::i;:::-;7888:7;;;7914:3;7888:31;;-1:-1:-1;;;7888:31:20;;-1:-1:-1;;;;;7914:3:20;;;7888:31;;;2636:51:21;7879:53:20;;7888:7;;;;;:17;;2609:18:21;;7888:31:20;2490:203:21;7879:53:20;7953:7;;;;;;;;;-1:-1:-1;;;;;7953:7:20;-1:-1:-1;;;;;7953:26:20;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7953:28:20;;;;;;;;;;;;:::i;:::-;7943:38;;7992:36;8001:7;:14;8026:1;7992:8;:36::i;4666:583:19:-;4755:12;4778:4;4771;:11;:39;;4799:11;4806:4;4799;:11;:::i;:::-;4771:39;;;4785:11;4792:4;4785;:11;:::i;:::-;4755:55;;4825:4;4833:1;4825:9;4821:22;;4836:7;4666:583;;;:::o;4821:22::-;4855:19;4877:9;;:23;;4896:4;4877:23;;;4889:4;4877:23;4855:45;-1:-1:-1;4911:10:19;4962:14;4968:8;4962:2;:14;:::i;:::-;4956:20;;2465:8;4956:20;:::i;:::-;4940:11;4926:10;2465:8;4926:4;:10;:::i;:::-;4925:26;;;;:::i;:::-;4924:53;4911:66;;4995:5;4990:252;;5021:80;;;8139:21:21;;;8196:2;8176:18;;;8169:30;8235:34;8230:2;8215:18;;8208:62;-1:-1:-1;;;8301:3:21;8286:19;;8279:51;8397:4;8382:20;;8375:36;;;5021:80:19;;-1:-1:-1;;;;;;;;;;;5021:80:19;;;;8362:3:21;5021:80:19;;;-1:-1:-1;;;;;;;;;;;5150:4:19;5121:34;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5204:4:19;5175:34;;;;;;:::i;:::-;;;;;;;;5224:6;:4;:6::i;:::-;4744:505;;;4666:583;;;:::o;5300:479::-;5388:18;5416:4;5409;:11;:39;;5437:11;5444:4;5437;:11;:::i;:::-;5409:39;;;5423:11;5430:4;5423;:11;:::i;:::-;5388:60;-1:-1:-1;5472:26:19;;;;;5511:261;;5543:88;;;9668:21:21;;;9725:2;9705:18;;;9698:30;9764:34;9759:2;9744:18;;9737:62;9836:26;9830:3;9815:19;;9808:55;9930:4;9915:20;;9908:36;;;5543:88:19;;-1:-1:-1;;;;;;;;;;;5543:88:19;;;;9895:3:21;5543:88:19;;;-1:-1:-1;;;;;;;;;;;5680:4:19;5651:34;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5734:4:19;5705:34;;;;;;:::i;:::-;;;;;;;;5754:6;:4;:6::i;:::-;5377:402;;5300:479;;;:::o;700:254:20:-;762:7;;:20;;;-1:-1:-1;;;762:20:20;;;;753:89;;-1:-1:-1;;;;;762:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;798:42;753:8;:89::i;:::-;862:7;;:26;;;-1:-1:-1;;;862:26:20;;;;853:39;;-1:-1:-1;;;;;862:7:20;;:24;;:26;;;;;;;;;;;;;;:7;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;890:1;853:8;:39::i;:::-;912:7;;:24;;;-1:-1:-1;;;912:24:20;;;;903:43;;-1:-1:-1;;;;;912:7:20;;:22;;:24;;;;;;;;;;;;;;:7;:24;;;;;;;;;;;;;;903:43;700:254::o;10208:627::-;10319:3;;10347:7;;10365:3;;10319:61;;-1:-1:-1;;;10319:61:20;;-1:-1:-1;;;;;10319:3:20;;;;:19;;:61;;10347:7;;;;10365:3;;;10371:8;;10319:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10312:69;;;;:::i;:::-;10472:7;;10505:3;;10472:38;;-1:-1:-1;;;10472:38:20;;-1:-1:-1;;;;;10505:3:20;;;10472:38;;;2636:51:21;10463::20;;10472:7;;;;;:24;;2609:18:21;;10472:38:20;;;;;;;;;;;;;;;;;;;;;;;10463:51;10554:3;;10584:7;;10554:39;;-1:-1:-1;;;10554:39:20;;-1:-1:-1;;;;;10584:7:20;;;10554:39;;;2636:51:21;10554:3:20;;;:21;;2609:18:21;;10554:39:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10683:7:20;;;10716:3;10683:38;;-1:-1:-1;;;10683:38:20;;-1:-1:-1;;;;;10716:3:20;;;10683:38;;;2636:51:21;10674::20;;10683:7;;;;;:24;;2609:18:21;;10683:38:20;2490:203:21;10674:51:20;10787:7;;:36;;-1:-1:-1;;;10787:36:20;;:7;:36;;;2636:51:21;10778:49:20;;-1:-1:-1;;;;;10787:7:20;;:24;;2609:18:21;;10787:36:20;2490:203:21;1705:443:20;1813:7;;:26;;;-1:-1:-1;;;1813:26:20;;;;1804:39;;-1:-1:-1;;;;;1813:7:20;;:24;;:26;;;;;;;;;;;;;;:7;:26;;;;;;;;;;;;;;1804:39;1863:7;;:24;;;-1:-1:-1;;;1863:24:20;;;;1854:43;;-1:-1:-1;;;;;1863:7:20;;:22;;:24;;;;;;;;;;;;;;:7;:24;;;;;;;;;;;;;;1854:43;1951:3;;1981:7;;1951:39;;-1:-1:-1;;;1951:39:20;;-1:-1:-1;;;;;1981:7:20;;;1951:39;;;2636:51:21;1951:3:20;;;:21;;2609:18:21;;1951:39:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1944:47;;;;:::i;:::-;2043:7;;:26;;;-1:-1:-1;;;2043:26:20;;;;2034:53;;-1:-1:-1;;;;;2043:7:20;;:24;;:26;;;;;;;;;;;;;;:7;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2071:15;2034:8;:53::i;:::-;2107:7;;:24;;;-1:-1:-1;;;2107:24:20;;;;2098:42;;-1:-1:-1;;;;;2107:7:20;;:22;;:24;;;;;;;;;;;;;;:7;:24;;;;;;;;;;;;;;13225:1924;13446:7;;13302:15;;13389:75;;13394:42;;-1:-1:-1;;;;;13446:7:20;13302:15;13389:4;:75::i;:::-;13533:3;;13511:27;;-1:-1:-1;;;13511:27:20;;-1:-1:-1;;;;;13533:3:20;;;13511:27;;;2636:51:21;-1:-1:-1;;;;;;;;;;;13511:13:20;;;2609:18:21;;13511:27:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13589:3:20;;13617:7;;13635:3;;13589:60;;-1:-1:-1;;;13589:60:20;;-1:-1:-1;;;;;13589:3:20;;;;-1:-1:-1;13589:19:20;;-1:-1:-1;13589:60:20;;13617:7;;;;13635:3;;;;13641:7;;13589:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13582:68;;;;:::i;:::-;13696:3;;13726:7;;13696:39;;-1:-1:-1;;;13696:39:20;;-1:-1:-1;;;;;13726:7:20;;;13696:39;;;2636:51:21;13696:3:20;;;:21;;2609:18:21;;13696:39:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13689:47;;;;:::i;:::-;13793:7;;:20;;;-1:-1:-1;;;13793:20:20;;;;13777:65;;-1:-1:-1;;;;;13793:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13833:3;;13786:52;;-1:-1:-1;;;13786:52:20;;-1:-1:-1;;;;;13833:3:20;;;13786:52;;;2636:51:21;13786:38:20;;;;;2609:18:21;;13786:52:20;2490:203:21;13777:65:20;13901:3;;13923:7;;13901:31;;-1:-1:-1;;;13901:31:20;;-1:-1:-1;;;;;13923:7:20;;;13901:31;;;2636:51:21;13901:3:20;;;:13;;2609:18:21;;13901:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13894:39;;;;:::i;:::-;13991:7;;:20;;;-1:-1:-1;;;13991:20:20;;;;13975:82;;-1:-1:-1;;;;;13991:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14031:3;;13984:52;;-1:-1:-1;;;13984:52:20;;-1:-1:-1;;;;;14031:3:20;;;13984:52;;;2636:51:21;13984:38:20;;;;;2609:18:21;;13984:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14053:3;14038:12;:7;14048:2;14038:12;:::i;:::-;:18;;;;:::i;:::-;13975:8;:82::i;:::-;14095:13;14100:7;14095:4;:13::i;:::-;14167:3;;14189:7;;14167:31;;-1:-1:-1;;;14167:31:20;;-1:-1:-1;;;;;14189:7:20;;;14167:31;;;2636:51:21;14167:3:20;;;:13;;2609:18:21;;14167:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14160:39;;;;:::i;:::-;14257:7;;:20;;;-1:-1:-1;;;14257:20:20;;;;14241:82;;-1:-1:-1;;;;;14257:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14297:3;;14250:52;;-1:-1:-1;;;14250:52:20;;-1:-1:-1;;;;;14297:3:20;;;14250:52;;;2636:51:21;14250:38:20;;;;;2609:18:21;;14250:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14319:3;14304:12;:7;14314:2;14304:12;:::i;14241:82::-;14361:13;14366:7;14361:4;:13::i;:::-;14433:3;;14455:7;;14433:31;;-1:-1:-1;;;14433:31:20;;-1:-1:-1;;;;;14455:7:20;;;14433:31;;;2636:51:21;14433:3:20;;;:13;;2609:18:21;;14433:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14426:39;;;;:::i;:::-;14523:7;;:20;;;-1:-1:-1;;;14523:20:20;;;;14507:82;;-1:-1:-1;;;;;14523:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14563:3;;14516:52;;-1:-1:-1;;;14516:52:20;;-1:-1:-1;;;;;14563:3:20;;;14516:52;;;2636:51:21;14516:38:20;;;;;2609:18:21;;14516:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14585:3;14570:12;:7;14580:2;14570:12;:::i;14507:82::-;14628:14;14633:8;14628:4;:14::i;:::-;14701:3;;14723:7;;14701:31;;-1:-1:-1;;;14701:31:20;;-1:-1:-1;;;;;14723:7:20;;;14701:31;;;2636:51:21;14701:3:20;;;:13;;2609:18:21;;14701:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14694:39;;;;:::i;:::-;14791:7;;:20;;;-1:-1:-1;;;14791:20:20;;;;14775:82;;-1:-1:-1;;;;;14791:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14831:3;;14784:52;;-1:-1:-1;;;14784:52:20;;-1:-1:-1;;;;;14831:3:20;;;14784:52;;;2636:51:21;14784:38:20;;;;;2609:18:21;;14784:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14853:3;14838:12;:7;14848:2;14838:12;:::i;14775:82::-;14896:14;14901:8;14896:4;:14::i;:::-;14969:3;;14991:7;;14969:31;;-1:-1:-1;;;14969:31:20;;-1:-1:-1;;;;;14991:7:20;;;14969:31;;;2636:51:21;14969:3:20;;;:13;;2609:18:21;;14969:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14962:39;;;;:::i;:::-;15059:7;;:20;;;-1:-1:-1;;;15059:20:20;;;;15043:71;;-1:-1:-1;;;;;15059:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15099:3;;15052:52;;-1:-1:-1;;;15052:52:20;;-1:-1:-1;;;;;15099:3:20;;;15052:52;;;2636:51:21;15052:38:20;;;;;2609:18:21;;15052:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15106:7;15043:8;:71::i;:::-;-1:-1:-1;;;;;;;;;;;309:37:1;;-1:-1:-1;;;;;15127:12:20;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2243:967;2379:3;;2409:7;;2379:45;;-1:-1:-1;;;2379:45:20;;-1:-1:-1;;;;;2379:3:20;;;;:21;;:45;;2409:7;;;840:42:19;;2379:45:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2378:46;2371:54;;;;:::i;:::-;2505:3;;2535:7;;2505:45;;-1:-1:-1;;;2505:45:20;;-1:-1:-1;;;;;2505:3:20;;;;:21;;:45;;2535:7;;;840:42:19;;2505:45:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2504:46;2497:54;;;;:::i;:::-;2636:3;;2666:7;;2636:45;;-1:-1:-1;;;2636:45:20;;-1:-1:-1;;;;;2636:3:20;;;;:21;;:45;;2666:7;;;840:42:19;;2636:45:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2635:46;2628:54;;;;:::i;:::-;2763:3;;2793:7;;2803:20;;;-1:-1:-1;;;2803:20:20;;;;-1:-1:-1;;;;;2763:3:20;;;;:21;;2793:7;;;;2803:18;;:20;;;;;;;;;;;;;;;2793:7;2803:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2763:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2762:62;2755:70;;;;:::i;:::-;2904:3;;2934:7;;2904:51;;-1:-1:-1;;;2904:51:20;;-1:-1:-1;;;;;2904:3:20;;;;:21;;:51;;2934:7;;;2904:3;;:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2903:52;2896:60;;;;:::i;:::-;3038:7;;3019:39;;840:42:19;;-1:-1:-1;;;;;3038:7:20;3048:9;2297:7:19;3048:3:20;:9;:::i;:::-;3019:4;:39::i;:::-;3156:3;;3186:7;;3156:45;;-1:-1:-1;;;3156:45:20;;-1:-1:-1;;;;;3156:3:20;;;;:21;;:45;;3186:7;;;840:42:19;;3156:45:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3149:53;;;;:::i;5991:1102::-;6122:3;;6150:7;;6122:3;6168;6122:61;;-1:-1:-1;;;6122:61:20;;-1:-1:-1;;;;;6122:3:20;;;;:19;;:61;;6150:7;;;;6168:3;;;6174:8;;6122:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6115:69;;;;:::i;:::-;6275:3;;6306:7;;6275:3;6324;6275:54;;-1:-1:-1;;;6275:54:20;;-1:-1:-1;;;;;6275:3:20;;;;:22;;:54;;6306:7;;;;6324:3;;;6275:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6274:55;6267:63;;;;:::i;:::-;6420:3;;6451:7;;6420:54;;-1:-1:-1;;;6420:54:20;;-1:-1:-1;;;;;6420:3:20;;;;:22;;:54;;6451:7;;;6420:3;;:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6419:55;6412:63;;;;:::i;:::-;6551:3;;6582:7;;6551:3;6600;6551:54;;-1:-1:-1;;;6551:54:20;;-1:-1:-1;;;;;6551:3:20;;;;:22;;:54;;6582:7;;;;6600:3;;;6551:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6544:62;;;;:::i;:::-;6641:3;;6619:27;;-1:-1:-1;;;6619:27:20;;-1:-1:-1;;;;;6641:3:20;;;6619:27;;;2636:51:21;-1:-1:-1;;;;;;;;;;;6619:13:20;;;2609:18:21;;6619:27:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6738:75:20;;-1:-1:-1;;;6738:75:20;;11388:2:21;6738:75:20;;;11370:21:21;11427:2;11407:18;;;11400:30;11466:34;11446:18;;;11439:62;11537:26;11517:18;;;11510:54;-1:-1:-1;;;;;;;;;;;6738:15:20;-1:-1:-1;6738:15:20;;-1:-1:-1;11581:19:21;;6738:75:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6824:7:20;;6855:3;;6824:36;;-1:-1:-1;;;6824:36:20;;-1:-1:-1;;;;;6855:3:20;;;6824:36;;;2636:51:21;6824:7:20;;;-1:-1:-1;6824:22:20;;-1:-1:-1;2609:18:21;;6824:36:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6936:77:20;;-1:-1:-1;;;6936:77:20;;11812:2:21;6936:77:20;;;11794:21:21;11851:2;11831:18;;;11824:30;11890:34;11870:18;;;11863:62;11961:28;11941:18;;;11934:56;-1:-1:-1;;;;;;;;;;;6936:15:20;-1:-1:-1;6936:15:20;;-1:-1:-1;12007:19:21;;6936:77:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7024:7:20;;:34;;-1:-1:-1;;;7024:34:20;;:7;:34;;;2636:51:21;-1:-1:-1;;;;;7024:7:20;;;;-1:-1:-1;7024:22:20;;-1:-1:-1;2609:18:21;;7024:34:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;309:37:1;;-1:-1:-1;;;;;7071:12:20;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5991:1102::o;5954:291:19:-;6054:7;6083:8;;:20;;;;;6096:7;6095:8;6083:20;6074:163;;;-1:-1:-1;6112:1:19;6105:8;;6074:163;6140:3;6133;:10;6129:108;;-1:-1:-1;6162:3:19;6155:10;;6129:108;6234:3;6221:9;6234:3;6221;:9;:::i;:::-;6214:17;;:3;:17;:::i;:::-;:23;;;;:::i;:::-;6207:30;;6129:108;5954:291;;;;;;:::o;4147:461::-;4225:12;4240:14;;;:6;:14;;;;;;;;:19;;;4286;;;;4330:31;;-1:-1:-1;;;4330:31:19;;-1:-1:-1;;;;;2654:32:21;;;4330:31:19;;;2636:51:21;;;;4240:19:19;;;4286;;4240;;4330:22;;2609:18:21;;4330:31:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4374:4;;4428:25;;4316:45;;-1:-1:-1;4374:4:19;;;-1:-1:-1;;;;;4374:4:19;;:10;;4399:4;;4428:25;;4439:7;;4448:4;;4428:25;;;:::i;:::-;;;;;;;;;;;;;4418:36;;;;;;4498:3;4492;:9;;;;:::i;:::-;4374:139;;-1:-1:-1;;;;;;4374:139:19;;;;;;;;;;;4484:18;4374:139;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4535:31:19;;-1:-1:-1;;;4535:31:19;;-1:-1:-1;;;;;2654:32:21;;;4535:31:19;;;2636:51:21;4526:52:19;;-1:-1:-1;4535:22:19;;;-1:-1:-1;4535:22:19;;2609:18:21;;4535:31:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4568:9;4574:3;4568;:9;:::i;12058:1114:20:-;12235:7;;12178:83;;12183:42;;-1:-1:-1;;;;;12235:7:20;12245:15;12178:4;:83::i;:::-;12331:3;;12309:27;;-1:-1:-1;;;12309:27:20;;-1:-1:-1;;;;;12331:3:20;;;12309:27;;;2636:51:21;-1:-1:-1;;;;;;;;;;;12309:13:20;;;2609:18:21;;12309:27:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12402:77:20;;-1:-1:-1;;;12402:77:20;;13114:2:21;12402:77:20;;;13096:21:21;13153:2;13133:18;;;13126:30;13192:34;13172:18;;;13165:62;13263:28;13243:18;;;13236:56;-1:-1:-1;;;;;;;;;;;12402:15:20;-1:-1:-1;12402:15:20;;-1:-1:-1;13309:19:21;;12402:77:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12490:7;;;;;;;;;-1:-1:-1;;;;;12490:7:20;-1:-1:-1;;;;;12490:13:20;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12557:3:20;;12585:7;;12603:3;;12557:68;;-1:-1:-1;;;12557:68:20;;-1:-1:-1;;;;;12557:3:20;;;;-1:-1:-1;12557:19:20;;-1:-1:-1;12557:68:20;;12585:7;;;;12603:3;;;;12609:15;;12557:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12550:76;;;;:::i;:::-;12692:62;;-1:-1:-1;;;12692:62:20;;13952:2:21;12692:62:20;;;13934:21:21;13991:2;13971:18;;;13964:30;14030:34;14010:18;;;14003:62;-1:-1:-1;;;14081:18:21;;;14074:41;-1:-1:-1;;;;;;;;;;;12692:15:20;;;14132:19:21;;12692:62:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12765:7;;;;;;;;;-1:-1:-1;;;;;12765:7:20;-1:-1:-1;;;;;12765:13:20;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12827:3:20;;12857:7;;12827:39;;-1:-1:-1;;;12827:39:20;;-1:-1:-1;;;;;12857:7:20;;;12827:39;;;2636:51:21;12827:3:20;;;-1:-1:-1;12827:21:20;;-1:-1:-1;2609:18:21;;12827:39:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12820:47;;;;:::i;:::-;12917:7;;;;;;;;;-1:-1:-1;;;;;12917:7:20;-1:-1:-1;;;;;12917:13:20;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12945:14;12950:8;12945:4;:14::i;:::-;13010:7;;;;;;;;;-1:-1:-1;;;;;13010:7:20;-1:-1:-1;;;;;13010:13:20;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13038:71:20;;-1:-1:-1;;;13038:71:20;;14363:2:21;13038:71:20;;;14345:21:21;14402:2;14382:18;;;14375:30;14441:34;14421:18;;;14414:62;-1:-1:-1;;;14492:18:21;;;14485:50;-1:-1:-1;;;;;;;;;;;13038:15:20;-1:-1:-1;13038:15:20;;-1:-1:-1;14552:19:21;;13038:71:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13120:7;;;;;;;;;-1:-1:-1;;;;;13120:7:20;-1:-1:-1;;;;;13120:13:20;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17340:2006;17422:48;17428:7;17437:13;17452:17;17422:5;:48::i;:::-;17599:7;;17412:58;;-1:-1:-1;17542:75:20;;17547:42;;-1:-1:-1;;;;;17599:7:20;17412:58;17542:4;:75::i;:::-;17686:3;;17664:27;;-1:-1:-1;;;17664:27:20;;-1:-1:-1;;;;;17686:3:20;;;17664:27;;;2636:51:21;-1:-1:-1;;;;;;;;;;;17664:13:20;;;2609:18:21;;17664:27:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17742:3:20;;17770:7;;17788:3;;17742:60;;-1:-1:-1;;;17742:60:20;;-1:-1:-1;;;;;17742:3:20;;;;-1:-1:-1;17742:19:20;;-1:-1:-1;17742:60:20;;17770:7;;;;17788:3;;;;17794:7;;17742:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17735:68;;;;:::i;:::-;17849:3;;17879:7;;17849:39;;-1:-1:-1;;;17849:39:20;;-1:-1:-1;;;;;17879:7:20;;;17849:39;;;2636:51:21;17849:3:20;;;:21;;2609:18:21;;17849:39:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17842:47;;;;:::i;:::-;17946:7;;:20;;;-1:-1:-1;;;17946:20:20;;;;17930:65;;-1:-1:-1;;;;;17946:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;17930:65;18054:3;;18076:7;;18054:31;;-1:-1:-1;;;18054:31:20;;-1:-1:-1;;;;;18076:7:20;;;18054:31;;;2636:51:21;18054:3:20;;;:13;;2609:18:21;;18054:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18047:39;;;;:::i;:::-;18146:7;;:20;;;-1:-1:-1;;;18146:20:20;;;;18128:93;;-1:-1:-1;;;;;18146:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18186:3;;18139:52;;-1:-1:-1;;;18139:52:20;;-1:-1:-1;;;;;18186:3:20;;;18139:52;;;2636:51:21;18139:38:20;;;;;2609:18:21;;18139:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18208:3;18193:12;:7;18203:2;18193:12;:::i;:::-;:18;;;;:::i;:::-;18213:7;18128:10;:93::i;:::-;18259:13;18264:7;18259:4;:13::i;:::-;18331:3;;18353:7;;18331:31;;-1:-1:-1;;;18331:31:20;;-1:-1:-1;;;;;18353:7:20;;;18331:31;;;2636:51:21;18331:3:20;;;:13;;2609:18:21;;18331:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18324:39;;;;:::i;:::-;18423:7;;:20;;;-1:-1:-1;;;18423:20:20;;;;18405:93;;-1:-1:-1;;;;;18423:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18463:3;;18416:52;;-1:-1:-1;;;18416:52:20;;-1:-1:-1;;;;;18463:3:20;;;18416:52;;;2636:51:21;18416:38:20;;;;;2609:18:21;;18416:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18485:3;18470:12;:7;18480:2;18470:12;:::i;18405:93::-;18536:13;18541:7;18536:4;:13::i;:::-;18608:3;;18630:7;;18608:31;;-1:-1:-1;;;18608:31:20;;-1:-1:-1;;;;;18630:7:20;;;18608:31;;;2636:51:21;18608:3:20;;;:13;;2609:18:21;;18608:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18601:39;;;;:::i;:::-;18700:7;;:20;;;-1:-1:-1;;;18700:20:20;;;;18682:93;;-1:-1:-1;;;;;18700:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18740:3;;18693:52;;-1:-1:-1;;;18693:52:20;;-1:-1:-1;;;;;18740:3:20;;;18693:52;;;2636:51:21;18693:38:20;;;;;2609:18:21;;18693:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18762:3;18747:12;:7;18757:2;18747:12;:::i;18682:93::-;18814:14;18819:8;18814:4;:14::i;:::-;18887:3;;18909:7;;18887:31;;-1:-1:-1;;;18887:31:20;;-1:-1:-1;;;;;18909:7:20;;;18887:31;;;2636:51:21;18887:3:20;;;:13;;2609:18:21;;18887:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18880:39;;;;:::i;:::-;18979:7;;:20;;;-1:-1:-1;;;18979:20:20;;;;18961:93;;-1:-1:-1;;;;;18979:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19019:3;;18972:52;;-1:-1:-1;;;18972:52:20;;-1:-1:-1;;;;;19019:3:20;;;18972:52;;;2636:51:21;18972:38:20;;;;;2609:18:21;;18972:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19041:3;19026:12;:7;19036:2;19026:12;:::i;3923:1165::-;4065:3;;4093:7;;4065:3;4111;4065:61;;-1:-1:-1;;;4065:61:20;;-1:-1:-1;;;;;4065:3:20;;;;:19;;:61;;4093:7;;;;4111:3;;;4117:8;;4065:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4064:62;4057:70;;;;:::i;:::-;4214:3;;4242:7;;4214:61;;-1:-1:-1;;;4214:61:20;;-1:-1:-1;;;;;4214:3:20;;;;:19;;:61;;4242:7;;;4214:3;;4266:8;;4214:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4213:62;4206:70;;;;:::i;:::-;4349:3;;4377:7;;4349:3;4395;4349:61;;-1:-1:-1;;;4349:61:20;;-1:-1:-1;;;;;4349:3:20;;;;:19;;:61;;4377:7;;;;4395:3;;;4401:8;;4349:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4342:69;;;;:::i;:::-;4446:3;;4424:27;;-1:-1:-1;;;4424:27:20;;-1:-1:-1;;;;;4446:3:20;;;4424:27;;;2636:51:21;-1:-1:-1;;;;;;;;;;;4424:13:20;;;2609:18:21;;4424:27:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4530:71:20;;-1:-1:-1;;;4530:71:20;;14783:2:21;4530:71:20;;;14765:21:21;14822:2;14802:18;;;14795:30;14861:34;14841:18;;;14834:62;-1:-1:-1;;;14912:18:21;;;14905:50;-1:-1:-1;;;;;;;;;;;4530:15:20;-1:-1:-1;4530:15:20;;-1:-1:-1;14972:19:21;;4530:71:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4612:7:20;;;4640:3;4612:43;;-1:-1:-1;;;4612:43:20;;-1:-1:-1;;;;;4612:7:20;;;;-1:-1:-1;4612:19:20;;-1:-1:-1;4612:43:20;;4640:3;;;;4646:8;;4612:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4732:75:20;;-1:-1:-1;;;4732:75:20;;15509:2:21;4732:75:20;;;15491:21:21;15548:2;15528:18;;;15521:30;15587:34;15567:18;;;15560:62;15658:26;15638:18;;;15631:54;-1:-1:-1;;;;;;;;;;;4732:15:20;-1:-1:-1;4732:15:20;;-1:-1:-1;15702:19:21;;4732:75:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4818:7:20;;:41;;-1:-1:-1;;;4818:41:20;;-1:-1:-1;;;;;4818:7:20;;;;-1:-1:-1;4818:19:20;;-1:-1:-1;4818:41:20;;:7;;4850:8;;4818:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4934:72:20;;-1:-1:-1;;;4934:72:20;;15933:2:21;4934:72:20;;;15915:21:21;15972:2;15952:18;;;15945:30;16011:34;15991:18;;;15984:62;-1:-1:-1;;;16062:18:21;;;16055:51;-1:-1:-1;;;;;;;;;;;4934:15:20;-1:-1:-1;4934:15:20;;-1:-1:-1;16123:19:21;;4934:72:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5017:7:20;;5045:3;;5017:36;;-1:-1:-1;;;5017:36:20;;-1:-1:-1;;;;;5017:7:20;;;;-1:-1:-1;5017:19:20;;-1:-1:-1;5017:36:20;;5045:3;;;;5017:7;;:36;;;:::i;3270:563::-;3359:7;;3340:39;;840:42:19;;-1:-1:-1;;;;;3359:7:20;3369:9;2297:7:19;3369:3:20;:9;:::i;3340:39::-;3460:7;;3429:40;;-1:-1:-1;;;3429:40:20;;-1:-1:-1;;;;;3460:7:20;;;3429:40;;;2636:51:21;3420:61:20;;840:42:19;;3429:22:20;;2609:18:21;;3429:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3471:9;2297:7:19;3471:3:20;:9;:::i;3420:61::-;3532:3;;3501:36;;-1:-1:-1;;;3501:36:20;;-1:-1:-1;;;;;3532:3:20;;;3501:36;;;2636:51:21;3492:53:20;;840:42:19;;3501:22:20;;2609:18:21;;3501:36:20;2490:203:21;3492:53:20;3612:3;;3642:7;;3612:45;;-1:-1:-1;;;3612:45:20;;-1:-1:-1;;;;;3612:3:20;;;;:21;;:45;;3642:7;;;840:42:19;;3612:45:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3605:53;;;;:::i;:::-;3740:7;;3709:40;;-1:-1:-1;;;3709:40:20;;-1:-1:-1;;;;;3740:7:20;;;3709:40;;;2636:51:21;3700:53:20;;840:42:19;;3709:22:20;;2609:18:21;;3709:40:20;2490:203:21;3700:53:20;3804:3;;3773:36;;-1:-1:-1;;;3773:36:20;;-1:-1:-1;;;;;3804:3:20;;;3773:36;;;2636:51:21;3764:61:20;;840:42:19;;3773:22:20;;2609:18:21;;3773:36:20;2490:203:21;8131:1974:20;8199:9;8211:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8296:3:20;;8324:7;;8296:3;8342;8296:61;;-1:-1:-1;;;8296:61:20;;8199:23;;-1:-1:-1;;;;;;8296:3:20;;;;:19;;:61;;8324:7;;;8342:3;;8348:8;;8296:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8289:69;;;;:::i;:::-;8376:3;;8404:7;;8422:3;;8376:61;;-1:-1:-1;;;8376:61:20;;-1:-1:-1;;;;;8376:3:20;;;;:19;;:61;;8404:7;;;;8422:3;;;8428:8;;8376:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8369:69;;;;:::i;:::-;8456:3;;8484:7;;8456:61;;-1:-1:-1;;;8456:61:20;;-1:-1:-1;;;;;8456:3:20;;;;:19;;:61;;8484:7;;;8502:3;;8508:8;;8456:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8449:69;;;;:::i;:::-;8569:7;;;8595:3;8569:31;;-1:-1:-1;;;8569:31:20;;-1:-1:-1;;;;;8595:3:20;;;8569:31;;;2636:51:21;8560:52:20;;8569:7;;;;;:17;;2609:18:21;;8569:31:20;2490:203:21;8560:52:20;8632:7;;8658:3;;8632:31;;-1:-1:-1;;;8632:31:20;;-1:-1:-1;;;;;8658:3:20;;;8632:31;;;2636:51:21;8623:52:20;;8632:7;;;;;:17;;2609:18:21;;8632:31:20;2490:203:21;8623:52:20;8695:7;;:31;;-1:-1:-1;;;8695:31:20;;-1:-1:-1;;;;;2654:32:21;;;8695:31:20;;;2636:51:21;8686:52:20;;8695:7;;:17;;2609:18:21;;8695:31:20;2490:203:21;8686:52:20;8785:7;;:28;;;-1:-1:-1;;;8785:28:20;;;;8749:33;;-1:-1:-1;;;;;8785:7:20;;:26;;:28;;;;;8749:33;;8785:28;;;;;;;:7;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8785:28:20;;;;;;;;;;;;:::i;:::-;8749:64;;8824:36;8833:7;:14;8858:1;8824:8;:36::i;:::-;8871:48;8880:7;8888:1;8880:10;;;;;;;;:::i;8871:48::-;8930:44;8939:7;8947:1;8939:10;;;;;;;;:::i;8930:44::-;8985:37;8994:7;9002:1;8994:10;;;;;;;;:::i;8985:37::-;9033:48;9042:7;9050:1;9042:10;;;;;;;;:::i;:::-;;;;;;;;;;;:18;9076:3;;-1:-1:-1;;;;;9076:3:20;9033:8;:48::i;:::-;9092:44;9101:7;9109:1;9101:10;;;;;;;;:::i;:::-;;;;;;;:23;;;9127:8;9092;:44::i;:::-;9147:37;9156:7;9164:1;9156:10;;;;;;;;:::i;9147:37::-;9195:48;9204:7;9212:1;9204:10;;;;;;;;:::i;:::-;;;;;;;:18;;;9238:3;9195:8;:48::i;:::-;9254:44;9263:7;9271:1;9263:10;;;;;;;;:::i;:::-;;;;;;;:23;;;9289:8;9254;:44::i;:::-;9309:37;9318:7;9326:1;9318:10;;;;;;;;:::i;9309:37::-;9400:3;;9431:7;;9400:3;9449;9400:54;;-1:-1:-1;;;9400:54:20;;-1:-1:-1;;;;;9400:3:20;;;;:22;;:54;;9431:7;;;;9449:3;;;9400:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9393:62;;;;:::i;:::-;9507:7;;;9533:3;9507:31;;-1:-1:-1;;;9507:31:20;;-1:-1:-1;;;;;9533:3:20;;;9507:31;;;2636:51:21;9498:53:20;;9507:7;;;;;:17;;2609:18:21;;9507:31:20;2490:203:21;9498:53:20;9571:7;;9597:3;;9571:31;;-1:-1:-1;;;9571:31:20;;-1:-1:-1;;;;;9597:3:20;;;9571:31;;;2636:51:21;9562:52:20;;9571:7;;;;;:17;;2609:18:21;;9571:31:20;2490:203:21;9562:52:20;9634:7;;:31;;-1:-1:-1;;;9634:31:20;;-1:-1:-1;;;;;2654:32:21;;;9634:31:20;;;2636:51:21;9625:52:20;;9634:7;;:17;;2609:18:21;;9634:31:20;2490:203:21;9625:52:20;9698:7;;;;;;;;;-1:-1:-1;;;;;9698:7:20;-1:-1:-1;;;;;9698:26:20;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9698:28:20;;;;;;;;;;;;:::i;:::-;9688:38;;9737:36;9746:7;:14;9771:1;9737:8;:36::i;:::-;9784:48;9793:7;9801:1;9793:10;;;;;;;;:::i;9784:48::-;9843:44;9852:7;9860:1;9852:10;;;;;;;;:::i;9843:44::-;9898:37;9907:7;9915:1;9907:10;;;;;;;;:::i;9898:37::-;9946:48;9955:7;9963:1;9955:10;;;;;;;;:::i;9946:48::-;10005:44;10014:7;10022:1;10014:10;;;;;;;;:::i;10005:44::-;10060:37;10069:7;10077:1;10069:10;;;;;;;;:::i;10060:37::-;8188:1917;;8131:1974::o;3238:184:19:-;3286:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3280:3:19;:17;;-1:-1:-1;;;;;;3280:17:19;-1:-1:-1;;;;;3280:17:19;;;;;;;;;;3327:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3321:3:19;:17;;-1:-1:-1;;;;;;3321:17:19;-1:-1:-1;;;;;3321:17:19;;;;;;;;;;3394:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3388:3:19;:17;;-1:-1:-1;;;;;;3388:17:19;-1:-1:-1;;;;;3388:17:19;;;;;;;;;;3238:184::o;1819:584:0:-;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;-1:-1:-1;;;;;;;;;;;2978:55:0;3059:16;1980:374;;2196:43;;2023:20;;-1:-1:-1;;;;;;;;;;;1671:64:0;2135:34;;2196:43;;1671:64;;-1:-1:-1;;;2221:17:0;2196:43;;;:::i;:::-;;;;-1:-1:-1;;2196:43:0;;;;;;;;;;2086:175;;;2196:43;2086:175;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;5787:159:19:-;5873:7;5900:38;5917:3;5922;5927;5932:5;5900:16;:38::i;:::-;5893:45;;5787:159;;;;;;:::o;19410:2115:20:-;19492:48;19498:7;19507:13;19522:17;19492:5;:48::i;:::-;19669:7;;19482:58;;-1:-1:-1;19612:79:20;;19617:42;;-1:-1:-1;;;;;19669:7:20;19679:11;19482:58;19689:1;19679:11;:::i;19612:79::-;19737:3;;19767:7;;19737:39;;-1:-1:-1;;;19737:39:20;;-1:-1:-1;;;;;19767:7:20;;;19737:39;;;2636:51:21;19737:3:20;;;:21;;2609:18:21;;19737:39:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19730:47;;;;:::i;:::-;19886:3;;19914:7;;19932:3;;19886:60;;-1:-1:-1;;;19886:60:20;;-1:-1:-1;;;;;19886:3:20;;;;:19;;:60;;19914:7;;;;19932:3;;;19938:7;;19886:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19879:68;;;;:::i;:::-;19999:3;;20027:7;;19999:3;20045;19999:60;;-1:-1:-1;;;19999:60:20;;-1:-1:-1;;;;;19999:3:20;;;;:19;;:60;;20027:7;;;;20045:3;;;20051:7;;19999:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19992:68;;;;:::i;:::-;20112:3;;20140:7;;20112:60;;-1:-1:-1;;;20112:60:20;;-1:-1:-1;;;;;20112:3:20;;;;:19;;:60;;20140:7;;;20112:3;;20164:7;;20112:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20105:68;;;;:::i;:::-;20248:13;20253:7;20248:4;:13::i;:::-;20279:3;;20301:7;;20279:31;;-1:-1:-1;;;20279:31:20;;-1:-1:-1;;;;;20301:7:20;;;20279:31;;;2636:51:21;20279:3:20;;;:13;;2609:18:21;;20279:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20272:39;;;;:::i;:::-;20406:7;;:20;;;-1:-1:-1;;;20406:20:20;;;;20388:95;;-1:-1:-1;;;;;20406:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;20388:95;20548:14;20553:8;20548:4;:14::i;:::-;20634:3;;20656:7;;20634:31;;-1:-1:-1;;;20634:31:20;;-1:-1:-1;;;;;20656:7:20;;;20634:31;;;2636:51:21;20634:3:20;;;:13;;2609:18:21;;20634:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20627:39;;;;:::i;:::-;20761:7;;:20;;;-1:-1:-1;;;20761:20:20;;;;20743:95;;-1:-1:-1;;;;;20761:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20801:3;;20754:52;;-1:-1:-1;;;20754:52:20;;-1:-1:-1;;;;;20801:3:20;;;20754:52;;;2636:51:21;20754:38:20;;;;;2609:18:21;;20754:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20824:3;20809:12;:7;20819:2;20809:12;:::i;20743:95::-;20904:14;20909:8;20904:4;:14::i;:::-;21016:3;;21038:7;;21016:31;;-1:-1:-1;;;21016:31:20;;-1:-1:-1;;;;;21038:7:20;;;21016:31;;;2636:51:21;21016:3:20;;;:13;;2609:18:21;;21016:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21009:39;;;;:::i;:::-;21130:7;;:20;;;-1:-1:-1;;;21130:20:20;;;;21114:71;;-1:-1:-1;;;;;21130:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21170:3;;21123:52;;-1:-1:-1;;;21123:52:20;;-1:-1:-1;;;;;21170:3:20;;;21123:52;;;2636:51:21;21123:38:20;;;;;2609:18:21;;21123:52:20;2490:203:21;21114:71:20;21230:14;21235:8;21230:4;:14::i;:::-;21338:3;;21360:7;;21338:31;;-1:-1:-1;;;21338:31:20;;-1:-1:-1;;;;;21360:7:20;;;21338:31;;;2636:51:21;21338:3:20;;;:13;;2609:18:21;;21338:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21331:39;;;;:::i;:::-;21460:7;;:20;;;-1:-1:-1;;;21460:20:20;;;;21444:71;;-1:-1:-1;;;;;21460:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21500:3;;21453:52;;-1:-1:-1;;;21453:52:20;;-1:-1:-1;;;;;21500:3:20;;;21453:52;;;2636:51:21;21453:38:20;;;;;2609:18:21;;21453:52:20;2490:203:21;10885:1093:20;11092:3;;11120:7;;11138:3;;11092:60;;-1:-1:-1;;;11092:60:20;;11028:15;;-1:-1:-1;;;;;11092:3:20;;;;:19;;:60;;11120:7;;;;11138:3;;11028:15;;11092:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11085:68;;;;:::i;:::-;11218:7;;11250:3;;11218:37;;-1:-1:-1;;;11218:37:20;;-1:-1:-1;;;;;11250:3:20;;;11218:37;;;2636:51:21;11209:56:20;;11218:7;;;;;:23;;2609:18:21;;11218:37:20;2490:203:21;11209:56:20;11312:3;;11342:7;;11312:39;;-1:-1:-1;;;11312:39:20;;-1:-1:-1;;;;;11342:7:20;;;11312:39;;;2636:51:21;11312:3:20;;;:21;;2609:18:21;;11312:39:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11305:47;;;;:::i;:::-;11391:14;11396:8;11391:4;:14::i;:::-;11471:15;11532:3;11518:11;:7;11528:1;11518:11;:::i;:::-;:17;;;;:::i;:::-;11513:23;;:1;:23;:::i;:::-;11505:3;11490:12;:7;11500:2;11490:12;:::i;:::-;:18;;;;:::i;:::-;11489:48;;;;:::i;:::-;11557:7;;11590:3;;11557:38;;-1:-1:-1;;;11557:38:20;;-1:-1:-1;;;;;11590:3:20;;;11557:38;;;2636:51:21;11471:66:20;;-1:-1:-1;11548:57:20;;11557:7;;;:24;;2609:18:21;;11557:38:20;2490:203:21;11548:57:20;11694:14;11699:8;11694:4;:14::i;:::-;11829:3;11815:11;:7;11825:1;11815:11;:::i;:::-;:17;;;;:::i;:::-;11809:24;;:2;:24;:::i;:::-;11801:3;11786:12;:7;11796:2;11786:12;:::i;:::-;:18;;;;:::i;:::-;11785:49;;;;:::i;:::-;11854:7;;11887:3;;11854:38;;-1:-1:-1;;;11854:38:20;;-1:-1:-1;;;;;11887:3:20;;;11854:38;;;2636:51:21;11775:59:20;;-1:-1:-1;11845:57:20;;11854:7;;;:24;;2609:18:21;;11854:38:20;2490:203:21;11845:57:20;11922:7;;11955:3;;11922:38;;-1:-1:-1;;;11922:38:20;;-1:-1:-1;;;;;11955:3:20;;;11922:38;;;2636:51:21;11913:57:20;;11922:7;;;;;:24;;2609:18:21;;11922:38:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11962:7;11913:8;:57::i;15199:2074::-;15374:7;;15317:83;;15322:42;;-1:-1:-1;;;;;15374:7:20;15384:15;15317:4;:83::i;:::-;15446:3;;15476:7;;15446:39;;-1:-1:-1;;;15446:39:20;;-1:-1:-1;;;;;15476:7:20;;;15446:39;;;2636:51:21;15446:3:20;;;:21;;2609:18:21;;15446:39:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15439:47;;;;:::i;:::-;15595:3;;15623:7;;15641:3;;15595:68;;-1:-1:-1;;;15595:68:20;;-1:-1:-1;;;;;15595:3:20;;;;:19;;:68;;15623:7;;;;15641:3;;;15647:15;;15595:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15588:76;;;;:::i;:::-;15716:3;;15744:7;;15716:3;15762;15716:68;;-1:-1:-1;;;15716:68:20;;-1:-1:-1;;;;;15716:3:20;;;;:19;;:68;;15744:7;;;;15762:3;;;15768:15;;15716:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15709:76;;;;:::i;:::-;15837:3;;15865:7;;15837:68;;-1:-1:-1;;;15837:68:20;;-1:-1:-1;;;;;15837:3:20;;;;:19;;:68;;15865:7;;;15837:3;;15889:15;;15837:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15830:76;;;;:::i;:::-;15981:13;15986:7;15981:4;:13::i;:::-;16012:3;;16034:7;;16012:31;;-1:-1:-1;;;16012:31:20;;-1:-1:-1;;;;;16034:7:20;;;16012:31;;;2636:51:21;16012:3:20;;;:13;;2609:18:21;;16012:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16005:39;;;;:::i;:::-;16137:7;;:20;;;-1:-1:-1;;;16137:20:20;;;;16121:93;;-1:-1:-1;;;;;16137:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16177:3;;16130:52;;-1:-1:-1;;;16130:52:20;;-1:-1:-1;;;;;16177:3:20;;;16130:52;;;2636:51:21;16130:38:20;;;;;2609:18:21;;16130:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16185:26;16121:8;:93::i;:::-;16279:14;16284:8;16279:4;:14::i;:::-;16365:3;;16387:7;;16365:31;;-1:-1:-1;;;16365:31:20;;-1:-1:-1;;;;;16387:7:20;;;16365:31;;;2636:51:21;16365:3:20;;;:13;;2609:18:21;;16365:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16358:39;;;;:::i;:::-;16490:7;;:20;;;-1:-1:-1;;;16490:20:20;;;;16474:92;;-1:-1:-1;;;;;16490:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16530:3;;16483:52;;-1:-1:-1;;;16483:52:20;;-1:-1:-1;;;;;16530:3:20;;;16483:52;;;2636:51:21;16483:38:20;;;;;2609:18:21;;16483:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16538:26;16474:8;:92::i;:::-;16632:14;16637:8;16632:4;:14::i;:::-;16744:3;;16766:7;;16744:31;;-1:-1:-1;;;16744:31:20;;-1:-1:-1;;;;;16766:7:20;;;16744:31;;;2636:51:21;16744:3:20;;;:13;;2609:18:21;;16744:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16737:39;;;;:::i;:::-;16858:7;;:20;;;-1:-1:-1;;;16858:20:20;;;;16842:81;;-1:-1:-1;;;;;16858:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16898:3;;16851:52;;-1:-1:-1;;;16851:52:20;;-1:-1:-1;;;;;16898:3:20;;;16851:52;;;2636:51:21;16851:38:20;;;;;2609:18:21;;16851:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16906:15;16842:8;:81::i;:::-;16968:14;16973:8;16968:4;:14::i;:::-;17076:3;;17098:7;;17076:31;;-1:-1:-1;;;17076:31:20;;-1:-1:-1;;;;;17098:7:20;;;17076:31;;;2636:51:21;17076:3:20;;;:13;;2609:18:21;;17076:31:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17069:39;;;;:::i;:::-;17198:7;;:20;;;-1:-1:-1;;;17198:20:20;;;;17182:81;;-1:-1:-1;;;;;17198:7:20;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17238:3;;17191:52;;-1:-1:-1;;;17191:52:20;;-1:-1:-1;;;;;17238:3:20;;;17191:52;;;2636:51:21;17191:38:20;;;;;2609:18:21;;17191:52:20;2490:203:21;3546:551:19;3589:6;:14;;;:26;;-1:-1:-1;;;;;;3589:26:19;;;840:42;3589:26;;;;3648:1;3626:19;:23;3662:13;:24;;;;914:42;3662:24;;;3718:1;3697:18;:22;3730:18;:63;;;;3751:42;3730:63;;;3806:14;:26;;;;988:42;3806:26;;;3865:1;3843:19;:23;3877:19;:64;;;;3899:42;3877:64;;;-1:-1:-1;;;3589:14:19;3954;;;;:26;;;;1062:42;3954:26;;;3991:19;:23;4025:19;:64;;;;;4047:42;4025:64;;;3546:551::o;1049:596:20:-;1185:3;;1215:7;;1185:39;;-1:-1:-1;;;1185:39:20;;-1:-1:-1;;;;;1215:7:20;;;1185:39;;;2636:51:21;1185:3:20;;;:21;;2609:18:21;;1185:39:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1184:40;1177:48;;;;:::i;:::-;1305:3;;1335:7;;1305:39;;-1:-1:-1;;;1305:39:20;;-1:-1:-1;;;;;1335:7:20;;;1305:39;;;2636:51:21;1305:3:20;;;:21;;2609:18:21;;1305:39:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1304:40;1297:48;;;;:::i;:::-;1440:3;;1470:7;;1440:39;;-1:-1:-1;;;1440:39:20;;-1:-1:-1;;;;;1470:7:20;;;1440:39;;;2636:51:21;1440:3:20;;;:21;;2609:18:21;;1440:39:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1433:47;;;;:::i;:::-;1597:3;;1627:7;;1597:39;;-1:-1:-1;;;1597:39:20;;-1:-1:-1;;;;;1627:7:20;;;1597:39;;;2636:51:21;1597:3:20;;;:21;;2609:18:21;;1597:39:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1596:40;1589:48;;;;:::i;789:312:2:-;859:1;854:6;;:1;:6;;;850:245;;881:41;;;;;18264:2:21;18246:21;;;18303:2;18283:18;;;18276:30;18342:34;18337:2;18322:18;;18315:62;-1:-1:-1;;;18408:2:21;18393:18;;18386:32;18450:3;18435:19;;18062:398;881:41:2;;;;;;;;941:52;972:1;:20;;;;;;;;;;;;;;;-1:-1:-1;;;972:20:2;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;972:20:2;;;;941:52;;;;;;:::i;:::-;;;;;;;;1012;1043:1;:20;;;;;;;;;;;;;;;-1:-1:-1;;;1043:20:2;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1043:20:2;;;;1012:52;;;;;;:::i;:::-;;;;;;;;1078:6;:4;:6::i;5202:262:0:-;5264:1;5259;:6;5255:203;;5286:41;;;;;19833:2:21;19815:21;;;19872:2;19852:18;;;19845:30;19911:34;19906:2;19891:18;;19884:62;-1:-1:-1;;;19977:2:21;19962:18;;19955:32;20019:3;20004:19;;19631:398;5286:41:0;;;;;;;;-1:-1:-1;;;;;;;;;;;5375:1:0;5346:31;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5425:1:0;5396:31;;;;;;:::i;3615:277::-;3683:1;-1:-1:-1;;;;;3678:6:0;:1;-1:-1:-1;;;;;3678:6:0;;3674:212;;3705:44;;;;;20236:2:21;20218:21;;;20275:2;20255:18;;;20248:30;20314:34;20309:2;20294:18;;20287:62;-1:-1:-1;;;20380:2:21;20365:18;;20358:35;20425:3;20410:19;;20034:401;3705:44:0;;;;;;;;3768:34;3800:1;3768:34;;;;;;:::i;:::-;;;;;;;;3821;3853:1;3821:34;;;;;;:::i;2410:424::-;-1:-1:-1;;;;;;;;;;;2978:55:0;3059:16;2445:359;;2645:67;;2482:11;;-1:-1:-1;;;;;;;;;;;1671:64:0;2579:43;;2645:67;;1671:64;;-1:-1:-1;;;2670:17:0;2705:4;;2645:67;;;:::i;:::-;;;;-1:-1:-1;;2645:67:0;;;;;;;;;;2534:196;;;2645:67;2534:196;;:::i;:::-;;;;-1:-1:-1;;2534:196:0;;;;;;;;;;2499:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2445:359:0;2813:7;:14;;-1:-1:-1;;2813:14:0;;;;;2410:424::o;19453:117:4:-;19535:28;19540:5;19547:2;19551:4;19557:5;19535:4;:28::i;:::-;19453:117;;;:::o;17530:93::-;-1:-1:-1;;;;;;;;;;;17585:7:4;17593:22;17611:4;17593:15;:22;:::i;:::-;17585:31;;;;;;;;;;;;;1244:25:21;;1232:2;1217:18;;1098:177;17585:31:4;;;;;;;;;;;;;;;;;;;;1880:190:9;1963:14;1998:19;2005:1;2008:3;2013;1998:6;:19::i;:::-;1989:28;;2027:36;;;;;;;;;;;;;;-1:-1:-1;;;2027:36:9;;;2056:6;2027:12;:36::i;19576:825:4:-;19740:38;;;-1:-1:-1;;;;;2654:32:21;;;19740:38:4;;;;2636:51:21;;;;19740:38:4;;;;;;;;;;2609:18:21;;;;19740:38:4;;;;;;;-1:-1:-1;;;;;19740:38:4;-1:-1:-1;;;19740:38:4;;;19729:50;;19705:20;;19729:10;;;:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19702:77;;;19789:15;19818:7;19807:30;;;;;;;;;;;;:::i;:::-;19789:48;-1:-1:-1;19874:71:4;19940:4;19874:51;19922:2;19874:38;-1:-1:-1;;;19874:22:4;:8;19890:5;19874:15;:22::i;:::-;:26;;:38::i;:::-;:47;;:51::i;:::-;:65;;:71::i;:::-;19991:6;19987:408;;;20054:34;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20054:34:4;-1:-1:-1;;;20054:34:4;;;20043:46;;20016:23;;-1:-1:-1;;;;;20043:10:4;;;:46;;20054:34;20043:46;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20013:76;;;20103:14;20131:10;20120:33;;;;;;;;;;;;:::i;:::-;20103:50;;20178:7;20171:4;:14;20167:144;;;20216:14;20226:4;20216:7;:14;:::i;:::-;20205:26;;;;:::i;:::-;;;20167:144;;;20281:14;20288:7;20281:4;:14;:::i;:::-;20270:26;;;;:::i;:::-;;;20167:144;20324:60;20377:6;20324:38;-1:-1:-1;;;20324:22:4;:8;20340:5;20324:15;:22::i;:60::-;19999:396;;19661:740;;19576:825;;;;:::o;611:1263:9:-;695:14;736:3;729;:10;;721:85;;;;-1:-1:-1;;;721:85:9;;21400:2:21;721:85:9;;;21382:21:21;21439:2;21419:18;;;21412:30;21478:34;21458:18;;;21451:62;21549:32;21529:18;;;21522:60;21599:19;;721:85:9;;;;;;;;;1040:3;1035:1;:8;;:20;;;;;1052:3;1047:1;:8;;1035:20;1031:34;;;-1:-1:-1;1064:1:9;1057:8;;1031:34;1076:12;1091:9;1097:3;1091;:9;:::i;:::-;:13;;1103:1;1091:13;:::i;:::-;1076:28;;1299:1;1294;:6;;:18;;;;;1311:1;1304:4;:8;1294:18;1290:38;;;1321:7;1327:1;1321:3;:7;:::i;:::-;1314:14;;;;;1290:38;1347:15;1361:1;-1:-1:-1;;1347:15:9;:::i;:::-;1342:1;:20;;:46;;;;-1:-1:-1;1373:15:9;1387:1;-1:-1:-1;;1373:15:9;:::i;:::-;1366:4;:22;1342:46;1338:82;;;1404:15;1418:1;-1:-1:-1;;1404:15:9;:::i;:::-;1397:23;;:3;:23;:::i;1338:82::-;1524:3;1520:1;:7;1516:352;;;1543:12;1558:7;1562:3;1558:1;:7;:::i;:::-;1543:22;-1:-1:-1;1579:11:9;1593;1600:4;1543:22;1593:11;:::i;:::-;1579:25;;1622:3;1629:1;1622:8;1618:24;;1639:3;1632:10;;;;;;;1618:24;1677:1;1665:9;1671:3;1665;:9;:::i;:::-;:13;;;;:::i;:::-;1656:22;;1529:160;;1516:352;;;1703:3;1699:1;:7;1695:173;;;1722:12;1737:7;1743:1;1737:3;:7;:::i;:::-;1722:22;-1:-1:-1;1758:11:9;1772;1779:4;1722:22;1772:11;:::i;:::-;1758:25;;1801:3;1808:1;1801:8;1797:24;;1818:3;1811:10;;;;;;;1797:24;1844:9;1850:3;1844;:9;:::i;:::-;:13;;1856:1;1844:13;:::i;:::-;1835:22;;1708:160;;1695:173;711:1163;611:1263;;;;;:::o;6307:207::-;6383:11;297:42;-1:-1:-1;;;;;6399:36:9;6483:2;6487;6436:54;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6436:54:9;;;;;;;;;;;;;;-1:-1:-1;;;;;6436:54:9;-1:-1:-1;;;6436:54:9;;;6399:92;;;6436:54;6399:92;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7708:156:8;4581:12;;;:22;;-1:-1:-1;;;;;;4581:22:8;-1:-1:-1;;;;;4581:22:8;;;;;-1:-1:-1;4581:12:8;7821:36;7814:43;;7708:156;;;;;:::o;7870:143::-;4736:9;;;:16;;-1:-1:-1;;4736:16:8;;;;;;;;-1:-1:-1;4736:9:8;7976:30;4637:143;8175:152;5052:10;;;:47;;;;;;;8249:18;5052:47;;;;;;-1:-1:-1;;;;;5076:21:8;;5052:47;;;8310:4;8286:34;4948:179;8951:120;9031:33;9045:4;9059:3;9399:12;;;;9435:9;;;;9476:11;;;;9520:10;;;9497:33;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9399:12:8;;;;9435:9;;;;;;9385:11;;9497:33;;9520:10;;9497:33;;9520:10;9497:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9541:17;9578:4;9584:12;9592:3;9584:7;:12::i;:::-;9561:36;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;9561:36:8;;;;;;;;;-1:-1:-1;;;;;9612:15:8;;;;;;:10;;;9561:36;9612:15;;;;;;-1:-1:-1;;;;;;9612:21:8;;;;;;;;;9561:36;;-1:-1:-1;9612:21:8;;:15;;9644:34;;9661:3;;9666:11;;9644:34;;:::i;:::-;;;;-1:-1:-1;;9644:34:8;;;;;;;;;9634:45;;9644:34;9634:45;;;;9612:68;;;;;;;;;;-1:-1:-1;9612:68:8;;;;9607:110;;9696:10;9701:4;9696;:10::i;:::-;;9607:110;-1:-1:-1;;;;;9749:15:8;;9726:12;9749:15;;;;;;;;;;;-1:-1:-1;;;;;;9749:21:8;;;;;;;;;9781:34;;9749:21;;9726:12;;9781:34;;9798:3;;9803:11;;9781:34;;:::i;:::-;;;;;;;;;;;;;9771:45;;;;;;9749:68;;;;;;;;;;;;9741:77;;9726:92;;9829:12;9868:17;9889:3;-1:-1:-1;;;;;9889:14:8;9904:4;9889:20;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9865:44:8;-1:-1:-1;9930:38:8;;-1:-1:-1;9865:44:8;9951:16;9956:11;9951:2;:16;:::i;:::-;9930:14;:38::i;:::-;10003:18;;-1:-1:-1;;;10003:18:8;;9923:45;;-1:-1:-1;9988:12:8;;-1:-1:-1;;;;;;;;;;;;10003:7:8;;;:18;;10011:3;;10016:4;;10003:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9988:33;;10044:4;10036;:12;10032:218;;10064:175;;-1:-1:-1;;;10064:175:8;;;;;;;:::i;:::-;10259:24;;-1:-1:-1;;;10259:24:8;;-1:-1:-1;;;;;;;;;;;10259:8:8;;;:24;;10268:3;;10273:4;;10279:3;;10259:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10300:12:8;;;10293:19;;-1:-1:-1;;;;;;10293:19:8;;;-1:-1:-1;10329:9:8;;;10322:16;;-1:-1:-1;;10322:16:8;;;10348:17;-1:-1:-1;10355:10:8;;10300:12;10348:17;:::i;:::-;10382:4;:11;;10375:18;;;9375:1025;;;;;;;;9305:1095;;:::o;11479:393::-;11538:12;11562:19;11594:1;:8;11605:2;11594:13;;;;:::i;:::-;11584:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11584:24:8;;11562:46;;11623:9;11618:224;11642:1;:8;11638:1;:12;11618:224;;;11671:9;11683:1;11685;11683:4;;;;;;;;:::i;:::-;;;;;;;11671:16;;11816:1;11810;11806:2;11802:10;11798:2;11794:19;11786:6;11782:32;11775:43;11757:75;11652:3;;;;;:::i;:::-;;;;11618:224;;;-1:-1:-1;11859:6:8;11479:393;-1:-1:-1;;11479:393:8:o;7587:115::-;7644:7;7670:25;7690:4;7670:19;:25::i;11118:304::-;11196:7;11215:11;11237;11262:2;11251:1;:8;:13;:29;;11272:1;:8;11251:29;;;11267:2;11251:29;11237:43;;11295:9;11290:106;11314:3;11310:1;:7;11290:106;;;11379:5;:1;11383;11379:5;:::i;:::-;11353:1;11355:10;11364:1;11355:6;:10;:::i;:::-;11353:13;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;11353:13:8;11345:40;;11338:47;;;;;11319:3;;;;:::i;:::-;;;;11290:106;;;-1:-1:-1;11412:3:8;;11118:304;-1:-1:-1;;;;11118:304:8:o;1264:3205::-;1354:12;;;;1390:9;;;;1431:11;;;;1475:10;;;1452:33;;;;;;;;;;;;;;;;;;;1321:7;;-1:-1:-1;;;;;1354:12:8;;1390:9;;;1431:11;1321:7;;1452:33;;1475:10;;1452:33;;;1475:10;1452:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;1536:15:8;;;;;;:10;;;:15;;;;;;;;-1:-1:-1;;;;;;1536:21:8;;;;;;;;;1568:34;;1452:33;;-1:-1:-1;1536:21:8;:15;;-1:-1:-1;1568:34:8;;-1:-1:-1;1452:33:8;;1590:11;;1568:34;;:::i;:::-;;;;-1:-1:-1;;1568:34:8;;;;;;;;;1558:45;;1568:34;1558:45;;;;1536:68;;;;;;;;;;-1:-1:-1;1536:68:8;;;;1532:174;;;-1:-1:-1;;;;;1627:15:8;;:10;:15;;;;;;;;;;;-1:-1:-1;;;;;;1627:21:8;;;;;;;;;1659:34;;1627:21;;:10;1659:34;;1676:3;;1681:11;;1659:34;;:::i;:::-;;;;;;;;;;;;;1649:45;;;;;;1627:68;;;;;;;;;;;;1620:75;;;;;;1264:3205;;;:::o;1532:174::-;1715:17;1752:4;1758:12;1766:3;1758:7;:12::i;:::-;1735:36;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1715:56;;-1:-1:-1;;;;;;;;;;;580:37:8;;-1:-1:-1;;;;;1781:9:8;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1802:12;1841:17;1862:3;-1:-1:-1;;;;;1862:14:8;1877:4;1862:20;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1838:44:8;-1:-1:-1;1903:38:8;;-1:-1:-1;1838:44:8;1924:16;1929:11;1924:2;:16;:::i;:::-;1903:14;:38::i;:::-;1990:25;;-1:-1:-1;;;1990:25:8;;-1:-1:-1;;;;;2654:32:21;;1990:25:8;;;2636:51:21;1896:45:8;;-1:-1:-1;1963:22:8;;-1:-1:-1;;;;;;;;;;;;1990:11:8;;;2609:18:21;;1990:25:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1990:25:8;;;;;;;;;;;;:::i;:::-;1962:53;;;2029:5;:12;2045:1;2029:17;2025:2068;;2062:12;-1:-1:-1;;;;;;;;;;;580:37:8;;-1:-1:-1;;;;;2077:7:8;;2085:3;2090:5;2096:1;2090:8;;;;;;;;:::i;:::-;;;;;;;2077:22;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2062:37;-1:-1:-1;2062:37:8;2113:106;;2160:44;2181:3;2194:5;2200:1;2194:8;;;;;;;;:::i;:::-;;;;;;;2186:17;;2160:44;;;;;;;:::i;:::-;;;;;;;;2113:106;2244:4;2236;:12;2232:238;;2268:187;;-1:-1:-1;;;2268:187:8;;;;;;;:::i;:::-;2488:86;2498:3;2503:4;2536:3;2541:11;2519:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2509:45;;;;;;2564:5;2570:1;2564:8;;;;;;;;:::i;:::-;;;;;;;2556:17;;2488:86;;;;;;;;;:::i;:::-;;;;;;;;2667:5;2673:1;2667:8;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2588:15:8;;2659:17;2588:15;;;;;;;;;;-1:-1:-1;;;;;;2588:21:8;;;;;;;;;2620:34;;2667:8;;2588:21;;2620:34;;2637:3;;2642:11;;2620:34;;:::i;:::-;;;;-1:-1:-1;;2620:34:8;;;;;;;;;2610:45;;2620:34;2610:45;;;;2588:68;;;;;;;;;;;;-1:-1:-1;2588:68:8;;;:88;;;;-1:-1:-1;;;;;2690:15:8;;;;2761:4;2690:10;;;:15;;;;;-1:-1:-1;;;;;;2690:21:8;;;;;;;;;2722:34;;2761:4;;-1:-1:-1;2722:34:8;;2739:3;;2744:11;;2722:34;;:::i;:::-;;;;;;;-1:-1:-1;;2722:34:8;;;;;;2712:45;;2722:34;2712:45;;;;2690:68;;;;;;;;;;-1:-1:-1;2690:68:8;:75;;-1:-1:-1;;2690:75:8;;;;;;;;;;-1:-1:-1;2025:2068:8;;;2801:1;2786:5;:12;:16;2782:1311;;;2823:9;2818:1152;2842:5;:12;2838:1;:16;2818:1152;;;2879:12;-1:-1:-1;;;;;;;;;;;580:37:8;;-1:-1:-1;;;;;2894:7:8;;2902:3;2907:5;2913:1;2907:8;;;;;;;;:::i;:::-;;;;;;;2894:22;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2879:37;-1:-1:-1;2879:37:8;2934:114;;2985:44;3006:3;3019:5;3025:1;3019:8;;;;;;;;:::i;:::-;;;;;;;3011:17;;2985:44;;;;;;;:::i;:::-;;;;;;;;2934:114;-1:-1:-1;;;;;;;;;;;580:37:8;;-1:-1:-1;;;;;3090:8:8;;3099:3;3104:5;3110:1;3104:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;3090:43:8;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3151:12;3181:17;3256:3;-1:-1:-1;;;;;3256:14:8;3271:4;3256:20;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3238:38:8;;-1:-1:-1;3238:38:8;-1:-1:-1;3305:38:8;3238;3326:16;3331:11;3326:2;:16;:::i;3305:38::-;3298:45;;3384:7;:37;;;;;-1:-1:-1;;;3395:4:8;:26;3384:37;3380:529;;;3519:86;3529:3;3534:4;3567:3;3572:11;3550:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3540:45;;;;;;3595:5;3601:1;3595:8;;;;;;;;:::i;:::-;;;;;;;3587:17;;3519:86;;;;;;;;;:::i;:::-;;;;;;;;3706:5;3712:1;3706:8;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;3627:15:8;;3698:17;3627:15;;;;;;;;;;-1:-1:-1;;;;;;3627:21:8;;;;;;;;;3659:34;;3706:8;;3627:21;;3659:34;;3676:3;;3681:11;;3659:34;;:::i;:::-;;;;;;;;;;;;;3649:45;;;;;;3627:68;;;;;;;;;;;:88;;;;3808:4;3737;:10;;:15;3748:3;-1:-1:-1;;;;;3737:15:8;-1:-1:-1;;;;;3737:15:8;;;;;;;;;;;;:21;3753:4;-1:-1:-1;;;;;3737:21:8;;-1:-1:-1;;;;;3737:21:8;;;;;;;;;;;;;:68;3786:3;3791:11;3769:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3759:45;;;;;;3737:68;;;;;;;;;;;;:75;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;580:37:8;;-1:-1:-1;;;;;3834:8:8;;3843:3;3848:5;3854:1;3848:8;;;;;;;;:::i;:::-;;;;;;;3858:4;3834:29;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3885:5;;;;;3380:529;-1:-1:-1;;;;;;;;;;;580:37:8;;-1:-1:-1;;;;;3926:8:8;;3935:3;3940:5;3946:1;3940:8;;;;;;;;:::i;:::-;;;;;;;3950:4;3926:29;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2861:1109;;;2856:3;;;;;:::i;:::-;;;;2818:1152;;;;2782:1311;;;4000:82;;;-1:-1:-1;;;4000:82:8;;25370:2:21;4000:82:8;;;25352:21:21;25389:18;;;25382:30;;;;25448:34;25428:18;;;25421:62;25519:34;25499:18;;;25492:62;25571:19;;4000:82:8;25168:428:21;4000:82:8;-1:-1:-1;;;;;4124:15:8;;;;;;:10;;;:15;;;;;;;;-1:-1:-1;;;;;;4124:21:8;;;;;;;;;4156:34;;4124:21;;:15;4156:34;;4173:3;;4178:11;;4156:34;;:::i;:::-;;;;-1:-1:-1;;4156:34:8;;;;;;;;;4146:45;;4156:34;4146:45;;;;4124:68;;;;;;;;;;-1:-1:-1;4124:68:8;;;;4103:162;;;;-1:-1:-1;;;4103:162:8;;25803:2:21;4103:162:8;;;25785:21:21;25842:2;25822:18;;;25815:30;25881:34;25861:18;;;25854:62;-1:-1:-1;;;25932:18:21;;;25925:45;25987:19;;4103:162:8;25601:411:21;4103:162:8;4283:12;;;4276:19;;-1:-1:-1;;;;;;4276:19:8;;;4312:9;;;4305:16;;-1:-1:-1;;4305:16:8;;;4331:17;-1:-1:-1;4338:10:8;;4283:12;4331:17;:::i;:::-;4358:18;4365:11;;;4358:18;;;-1:-1:-1;;;;;4394:15:8;;;;;;;;;;;;-1:-1:-1;;;;;;4394:21:8;;;;;;;;;4426:34;;4394:21;;4358:18;4426:34;;4443:3;;4448:11;;4426:34;;:::i;:::-;;;;;;;;;;;;;4416:45;;;;;;4394:68;;;;;;;;;;;;4387:75;;;;;;;;;1264:3205;;;:::o;6950:393::-;7009:12;7033:19;7065:1;:8;7076:2;7065:13;;;;:::i;:::-;7055:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7055:24:8;;7033:46;;7094:9;7089:224;7113:1;:8;7109:1;:12;7089:224;;;7142:9;7154:1;7156;7154:4;;;;;;;;:::i;:::-;;;;;;;7142:16;;7287:1;7281;7277:2;7273:10;7269:2;7265:19;7257:6;7253:32;7246:43;7228:75;7123:3;;;;;:::i;:::-;;;;7089:224;;6640:304;6718:7;6737:11;6759;6784:2;6773:1;:8;:13;:29;;6794:1;:8;6773:29;;;6789:2;6773:29;6759:43;;6817:9;6812:106;6836:3;6832:1;:7;6812:106;;;6901:5;:1;6905;6901:5;:::i;:::-;6875:1;6877:10;6886:1;6877:6;:10;:::i;:::-;6875:13;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;6875:13:8;6867:40;;6860:47;;;;;6841:3;;;;:::i;:::-;;;;6812:106;;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;203:316:21:-;280:6;288;296;349:2;337:9;328:7;324:23;320:32;317:52;;;365:1;362;355:12;317:52;-1:-1:-1;;388:23:21;;;458:2;443:18;;430:32;;-1:-1:-1;509:2:21;494:18;;;481:32;;203:316;-1:-1:-1;203:316:21:o;524:118::-;610:5;603:13;596:21;589:5;586:32;576:60;;632:1;629;622:12;647:446;730:6;738;746;754;807:3;795:9;786:7;782:23;778:33;775:53;;;824:1;821;814:12;775:53;860:9;847:23;837:33;;917:2;906:9;902:18;889:32;879:42;;968:2;957:9;953:18;940:32;930:42;;1022:2;1011:9;1007:18;994:32;1035:28;1057:5;1035:28;:::i;:::-;647:446;;;;-1:-1:-1;647:446:21;;-1:-1:-1;;647:446:21:o;1280:131::-;-1:-1:-1;;;;;1355:31:21;;1345:42;;1335:70;;1401:1;1398;1391:12;1416:383;1493:6;1501;1509;1562:2;1550:9;1541:7;1537:23;1533:32;1530:52;;;1578:1;1575;1568:12;1530:52;1614:9;1601:23;1591:33;;1674:2;1663:9;1659:18;1646:32;1687:31;1712:5;1687:31;:::i;:::-;1416:383;;1737:5;;-1:-1:-1;;;1789:2:21;1774:18;;;;1761:32;;1416:383::o;1804:180::-;1863:6;1916:2;1904:9;1895:7;1891:23;1887:32;1884:52;;;1932:1;1929;1922:12;1884:52;-1:-1:-1;1955:23:21;;1804:180;-1:-1:-1;1804:180:21:o;2181:304::-;-1:-1:-1;;;;;2411:15:21;;;2393:34;;2463:15;;2458:2;2443:18;;2436:43;2343:2;2328:18;;2181:304::o;2698:245::-;2765:6;2818:2;2806:9;2797:7;2793:23;2789:32;2786:52;;;2834:1;2831;2824:12;2786:52;2866:9;2860:16;2885:28;2907:5;2885:28;:::i;2948:127::-;3009:10;3004:3;3000:20;2997:1;2990:31;3040:4;3037:1;3030:15;3064:4;3061:1;3054:15;3080:253;3152:2;3146:9;3194:4;3182:17;;3229:18;3214:34;;3250:22;;;3211:62;3208:88;;;3276:18;;:::i;:::-;3312:2;3305:22;3080:253;:::o;3338:275::-;3409:2;3403:9;3474:2;3455:13;;-1:-1:-1;;3451:27:21;3439:40;;3509:18;3494:34;;3530:22;;;3491:62;3488:88;;;3556:18;;:::i;:::-;3592:2;3585:22;3338:275;;-1:-1:-1;3338:275:21:o;3618:191::-;3686:4;3719:18;3711:6;3708:30;3705:56;;;3741:18;;:::i;:::-;-1:-1:-1;3786:1:21;3782:14;3798:4;3778:25;;3618:191::o;3814:1368::-;3936:6;3967:2;4010;3998:9;3989:7;3985:23;3981:32;3978:52;;;4026:1;4023;4016:12;3978:52;4059:9;4053:16;4092:18;4084:6;4081:30;4078:50;;;4124:1;4121;4114:12;4078:50;4147:22;;4200:4;4192:13;;4188:27;-1:-1:-1;4178:55:21;;4229:1;4226;4219:12;4178:55;4258:2;4252:9;4281:68;4297:51;4345:2;4297:51;:::i;:::-;4281:68;:::i;:::-;4383:15;;;4445:4;4484:11;;;4476:20;;4472:29;;;4414:12;;;;4371:3;4513:19;;;4510:39;;;4545:1;4542;4535:12;4510:39;4569:11;;;;4589:563;4605:6;4600:3;4597:15;4589:563;;;4685:2;4679:3;4670:7;4666:17;4662:26;4659:116;;;4729:1;4758:2;4754;4747:14;4659:116;4801:22;;:::i;:::-;4857:3;4851:10;4874:33;4899:7;4874:33;:::i;:::-;4920:22;;4984:12;;;4978:19;4962:14;;;4955:43;5021:2;5065:12;;;5059:19;5043:14;;;5036:43;5092:18;;4622:12;;;;5130;;;;4589:563;;;-1:-1:-1;5171:5:21;3814:1368;-1:-1:-1;;;;;;;3814:1368:21:o;5187:402::-;-1:-1:-1;;;;;5472:15:21;;;5454:34;;5524:15;;;;5519:2;5504:18;;5497:43;5571:2;5556:18;;5549:34;;;;5404:2;5389:18;;5187:402::o;5594:127::-;5655:10;5650:3;5646:20;5643:1;5636:31;5686:4;5683:1;5676:15;5710:4;5707:1;5700:15;5726:127;5787:10;5782:3;5778:20;5775:1;5768:31;5818:4;5815:1;5808:15;5842:4;5839:1;5832:15;5858:127;5919:10;5914:3;5910:20;5907:1;5900:31;5950:4;5947:1;5940:15;5974:4;5971:1;5964:15;5990:128;6057:9;;;6078:11;;;6075:37;;;6092:18;;:::i;6123:422::-;6212:1;6255:5;6212:1;6269:270;6290:7;6280:8;6277:21;6269:270;;;6349:4;6345:1;6341:6;6337:17;6331:4;6328:27;6325:53;;;6358:18;;:::i;:::-;6408:7;6398:8;6394:22;6391:55;;;6428:16;;;;6391:55;6507:22;;;;6467:15;;;;6269:270;;;6273:3;6123:422;;;;;:::o;6550:806::-;6599:5;6629:8;6619:80;;-1:-1:-1;6670:1:21;6684:5;;6619:80;6718:4;6708:76;;-1:-1:-1;6755:1:21;6769:5;;6708:76;6800:4;6818:1;6813:59;;;;6886:1;6881:130;;;;6793:218;;6813:59;6843:1;6834:10;;6857:5;;;6881:130;6918:3;6908:8;6905:17;6902:43;;;6925:18;;:::i;:::-;-1:-1:-1;;6981:1:21;6967:16;;6996:5;;6793:218;;7095:2;7085:8;7082:16;7076:3;7070:4;7067:13;7063:36;7057:2;7047:8;7044:16;7039:2;7033:4;7030:12;7026:35;7023:77;7020:159;;;-1:-1:-1;7132:19:21;;;7164:5;;7020:159;7211:34;7236:8;7230:4;7211:34;:::i;:::-;7281:6;7277:1;7273:6;7269:19;7260:7;7257:32;7254:58;;;7292:18;;:::i;:::-;7330:20;;6550:806;-1:-1:-1;;;6550:806:21:o;7361:131::-;7421:5;7450:36;7477:8;7471:4;7450:36;:::i;7497:127::-;7558:10;7553:3;7549:20;7546:1;7539:31;7589:4;7586:1;7579:15;7613:4;7610:1;7603:15;7629:120;7669:1;7695;7685:35;;7700:18;;:::i;:::-;-1:-1:-1;7734:9:21;;7629:120::o;7754:168::-;7827:9;;;7858;;7875:15;;;7869:22;;7855:37;7845:71;;7896:18;;:::i;8586:348::-;8816:2;8805:9;8798:21;8779:4;8836:49;8881:2;8870:9;8866:18;8499:2;8487:15;;-1:-1:-1;;;8527:4:21;8518:14;;8511:36;8572:2;8563:12;;8422:159;8836:49;8828:57;;8921:6;8916:2;8905:9;8901:18;8894:34;8586:348;;;;:::o;9103:::-;9333:2;9322:9;9315:21;9296:4;9353:49;9398:2;9387:9;9383:18;9016:2;9004:15;;-1:-1:-1;;;9044:4:21;9035:14;;9028:36;9089:2;9080:12;;8939:159;9955:251;10025:6;10078:2;10066:9;10057:7;10053:23;10049:32;10046:52;;;10094:1;10091;10084:12;10046:52;10126:9;10120:16;10145:31;10170:5;10145:31;:::i;10211:184::-;10281:6;10334:2;10322:9;10313:7;10309:23;10305:32;10302:52;;;10350:1;10347;10340:12;10302:52;-1:-1:-1;10373:16:21;;10211:184;-1:-1:-1;10211:184:21:o;12037:112::-;12069:1;12095;12085:35;;12100:18;;:::i;:::-;-1:-1:-1;12134:9:21;;12037:112::o;12154:125::-;12219:9;;;12240:10;;;12237:36;;;12253:18;;:::i;12284:274::-;-1:-1:-1;;;;;12476:32:21;;;;12458:51;;12540:2;12525:18;;12518:34;12446:2;12431:18;;12284:274::o;12563:345::-;-1:-1:-1;;;;;12783:32:21;;;;12765:51;;12847:2;12832:18;;12825:34;;;;12890:2;12875:18;;12868:34;12753:2;12738:18;;12563:345::o;17126:250::-;17211:1;17221:113;17235:6;17232:1;17229:13;17221:113;;;17311:11;;;17305:18;17292:11;;;17285:39;17257:2;17250:10;17221:113;;;-1:-1:-1;;17368:1:21;17350:16;;17343:27;17126:250::o;17381:384::-;-1:-1:-1;;;;;;17566:33:21;;17554:46;;17623:13;;17536:3;;17645:74;17623:13;17708:1;17699:11;;17692:4;17680:17;;17645:74;:::i;:::-;17739:16;;;;17757:1;17735:24;;17381:384;-1:-1:-1;;;17381:384:21:o;17770:287::-;17899:3;17937:6;17931:13;17953:66;18012:6;18007:3;18000:4;17992:6;17988:17;17953:66;:::i;:::-;18035:16;;;;;17770:287;-1:-1:-1;;17770:287:21:o;18465:271::-;18507:3;18545:5;18539:12;18572:6;18567:3;18560:19;18588:76;18657:6;18650:4;18645:3;18641:14;18634:4;18627:5;18623:16;18588:76;:::i;:::-;18718:2;18697:15;-1:-1:-1;;18693:29:21;18684:39;;;;18725:4;18680:50;;18465:271;-1:-1:-1;;18465:271:21:o;18741:440::-;18991:2;18980:9;18973:21;18954:4;19017:49;19062:2;19051:9;19047:18;8499:2;8487:15;;-1:-1:-1;;;8527:4:21;8518:14;;8511:36;8572:2;8563:12;;8422:159;19017:49;19114:9;19106:6;19102:22;19097:2;19086:9;19082:18;19075:50;19142:33;19168:6;19160;19142:33;:::i;19186:440::-;19436:2;19425:9;19418:21;19399:4;19462:49;19507:2;19496:9;19492:18;9016:2;9004:15;;-1:-1:-1;;;9044:4:21;9035:14;;9028:36;9089:2;9080:12;;8939:159;20440:374;20670:2;20659:9;20652:21;20633:4;20690:49;20735:2;20724:9;20720:18;8499:2;8487:15;;-1:-1:-1;;;8527:4:21;8518:14;;8511:36;8572:2;8563:12;;8422:159;20690:49;-1:-1:-1;;;;;20775:32:21;;;;20770:2;20755:18;;;;20748:60;;;;-1:-1:-1;20682:57:21;20440:374::o;20819:::-;21049:2;21038:9;21031:21;21012:4;21069:49;21114:2;21103:9;21099:18;9016:2;9004:15;;-1:-1:-1;;;9044:4:21;9035:14;;9028:36;9089:2;9080:12;;8939:159;21629:291;21806:2;21795:9;21788:21;21769:4;21826:45;21867:2;21856:9;21852:18;21844:6;21826:45;:::i;:::-;21818:53;;21907:6;21902:2;21891:9;21887:18;21880:34;21629:291;;;;;:::o;21925:610::-;22171:13;;22114:3;;22145;;22224:4;22251:15;;;22114:3;22294:175;22308:6;22305:1;22302:13;22294:175;;;22371:13;;22357:28;;22407:14;;;;22444:15;;;;22330:1;22323:9;22294:175;;;-1:-1:-1;;22478:21:21;;;-1:-1:-1;22515:14:21;;;;;-1:-1:-1;;;21925:610:21:o;22729:556::-;22931:2;22913:21;;;22970:3;22950:18;;;22943:31;23010:34;23005:2;22990:18;;22983:62;23081:34;23076:2;23061:18;;23054:62;23153:34;23147:3;23132:19;;23125:63;-1:-1:-1;;;23219:3:21;23204:19;;23197:46;23275:3;23260:19;;22729:556::o;23290:135::-;23329:3;23350:17;;;23347:43;;23370:18;;:::i;:::-;-1:-1:-1;23417:1:21;23406:13;;23290:135::o;23430:667::-;23495:5;23548:3;23541:4;23533:6;23529:17;23525:27;23515:55;;23566:1;23563;23556:12;23515:55;23595:6;23589:13;23621:4;23645:68;23661:51;23709:2;23661:51;:::i;23645:68::-;23747:15;;;23833:1;23829:10;;;;23817:23;;23813:32;;;23778:12;;;;23857:15;;;23854:35;;;23885:1;23882;23875:12;23854:35;23921:2;23913:6;23909:15;23933:135;23949:6;23944:3;23941:15;23933:135;;;24015:10;;24003:23;;24046:12;;;;23966;;23933:135;;;-1:-1:-1;24086:5:21;23430:667;-1:-1:-1;;;;;;23430:667:21:o;24102:614::-;24231:6;24239;24292:2;24280:9;24271:7;24267:23;24263:32;24260:52;;;24308:1;24305;24298:12;24260:52;24341:9;24335:16;24370:18;24411:2;24403:6;24400:14;24397:34;;;24427:1;24424;24417:12;24397:34;24450:72;24514:7;24505:6;24494:9;24490:22;24450:72;:::i;:::-;24440:82;;24568:2;24557:9;24553:18;24547:25;24531:41;;24597:2;24587:8;24584:16;24581:36;;;24613:1;24610;24603:12;24581:36;;24636:74;24702:7;24691:8;24680:9;24676:24;24636:74;:::i;:::-;24626:84;;;24102:614;;;;;:::o;24721:442::-;-1:-1:-1;;;;;24968:32:21;;;;24950:51;;-1:-1:-1;;;;;;25037:33:21;;;;25032:2;25017:18;;25010:61;25102:2;25087:18;;25080:34;25145:2;25130:18;;25123:34;24937:3;24922:19;;24721:442::o", + "object": "0x60806040523480156200001157600080fd5b50600436106200023d5760003560e01c80638a8fa9b2116200013d578063c060c5f311620000bb578063c947e25d1162000086578063c947e25d14620003fb578063e70dd6cf1462000405578063eea96210146200040e578063f4ceccba1462000418578063fa7626d4146200042257600080fd5b8063c060c5f314620003ba578063c375033d14620003d1578063c5ba73ed14620003e8578063c7283c7814620003f157600080fd5b8063a641e8dc1162000108578063a641e8dc1462000377578063b1857efe1462000381578063b357ca55146200038b578063b967b5a71462000395578063ba414fa6146200039f57600080fd5b80638a8fa9b214620003445780638c38922f146200034e5780638c85288114620003575780639f71f14a146200036e57600080fd5b806356742ce111620001cb57806365dfbcb3116200019657806365dfbcb314620002ea57806369e58f0d14620002f45780636c676a6014620002fe5780637a8fe3c014620003245780637ed9db59146200032d57600080fd5b806356742ce114620002c25780635a17a66b14620002cc5780635f18f11614620002d657806363cbd9c114620002e057600080fd5b806330f7c5c3116200020c57806330f7c5c31462000282578063344b147814620002995780633493f4ca14620002b057806338505fb014620002b957600080fd5b80630a9254e4146200024257806312223997146200024e578063174a5be414620002585780632ef9ccdf1462000278575b600080fd5b6200024c62000430565b005b6200024c620004c2565b62000261600181565b60405160ff90911681526020015b60405180910390f35b6200024c62000911565b6200024c6200029336600462007e5d565b62000c17565b6200024c620002aa36600462007e5d565b62000d8d565b62000261600b81565b62000261600281565b6200024c62000e9d565b6200024c62000fc7565b6200024c620011a0565b6200024c62001385565b6200024c62001e3a565b6200024c62002280565b620003156200030f36600462007e99565b620027d4565b6040519081526020016200026f565b62000261600c81565b6200024c6200033e36600462007ef3565b62002832565b6200024c620029eb565b62000261600a81565b6200024c6200036836600462007f2e565b62003019565b62000261600481565b6200024c62003886565b6200024c62003df3565b6200024c62004042565b6200024c62004735565b620003a96200481b565b60405190151581526020016200026f565b62000315620003cb36600462007e5d565b6200494c565b6200024c620003e236600462007f2e565b62004967565b62000261600381565b6200024c6200512f565b6200024c62005446565b62000261600081565b6200024c62005cb7565b6200024c62005f10565b600054620003a99060ff1681565b6200043a62004735565b6200044462005cb7565b60025460405173853d955acef822db058eb8505911ed77f175b99e916001600160a01b031690620004759062007e0c565b6200048292919062007f48565b604051809103906000f0801580156200049f573d6000803e3d6000fd5b50601880546001600160a01b0319166001600160a01b0392909216919091179055565b6018546001546040516337bde4df60e11b81526001600160a01b03918216600482015262000545929190911690636f7bc9be906024015b602060405180830381865afa15801562000517573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053d919062007f62565b600062006123565b60185460408051632856c13d60e11b815290516000926001600160a01b0316916350ad827a91600480830192869291908290030181865afa1580156200058f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620005b991908101906200801f565b9050620005c981516000620062ac565b6018546040805163022b1d8960e21b8152905162000644926001600160a01b0316916308ac76249160048083019260209291908290030181865afa15801562000616573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200063c9190620080fa565b6000620062ac565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200068b9390821692911690678ac7230489e800009060040162008114565b6020604051808303816000875af1158015620006ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006d1919062007f62565b620006e057620006e062008138565b6018546001546040516337bde4df60e11b81526001600160a01b03918216600482015262000763929190911690636f7bc9be906024015b602060405180830381865afa15801562000735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200075b919062007f62565b600162006123565b601860009054906101000a90046001600160a01b03166001600160a01b03166350ad827a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015620007b7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620007e191908101906200801f565b9050620007f181516001620062ac565b62000829816000815181106200080b576200080b6200814e565b6020908102919091010151516001546001600160a01b03166200636f565b6200085e816000815181106200084357620008436200814e565b602002602001015160200151678ac7230489e80000620062ac565b6200088c816000815181106200087857620008786200814e565b6020026020010151604001516000620062ac565b6018546040805163022b1d8960e21b815290516200090e926001600160a01b0316916308ac76249160048083019260209291908290030181865afa158015620008d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008ff9190620080fa565b678ac7230489e80000620062ac565b50565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620009589390821692911690678ac7230489e800009060040162008114565b6020604051808303816000875af115801562000978573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200099e919062007f62565b620009ad57620009ad62008138565b6018546001546040516337bde4df60e11b81526001600160a01b039182166004820152620009e9929190911690636f7bc9be9060240162000717565b60185460408051632856c13d60e11b815290516000926001600160a01b0316916350ad827a91600480830192869291908290030181865afa15801562000a33573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000a5d91908101906200801f565b905062000a6d81516001620062ac565b62000a87816000815181106200080b576200080b6200814e565b62000aa1816000815181106200084357620008436200814e565b62000abb816000815181106200087857620008786200814e565b60025460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f49362000af8939082169291169060040162007f48565b6020604051808303816000875af115801562000b18573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b3e919062007f62565b62000b4d5762000b4d62008138565b6018546001546040516337bde4df60e11b81526001600160a01b03918216600482015262000b89929190911690636f7bc9be90602401620004f9565b601860009054906101000a90046001600160a01b03166001600160a01b03166350ad827a6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000bdd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000c0791908101906200801f565b90506200090e81516000620062ac565b600082841162000c335762000c2d84846200817a565b62000c3f565b62000c3f83856200817a565b90508060000362000c505750505050565b6000841562000c60578462000c62565b835b9050600062000c7384600a6200828d565b62000c8b906b033b2e3c9fd0803ce8000000620082b1565b8262000ca46b033b2e3c9fd0803ce800000086620082c8565b62000cb09190620082b1565b1090508062000d8557604080518181526034818301527f4572726f723a20617070726f782061203d3d2062206e6f742073617469736669606082015273032b2161030b1b1bab930b1bc903234b3b4ba39960651b60808201526020810186905290516000805160206200a6e58339815191529181900360a00190a16000805160206200a6e58339815191528660405162000d4b9190620082e2565b60405180910390a16000805160206200a6e58339815191528560405162000d7391906200831b565b60405180910390a162000d8562006469565b505050505050565b600082841162000da95762000da384846200817a565b62000db5565b62000db583856200817a565b9050818111158062000e9657604080518181526038818301527f4572726f723a20617070726f782061203d3d2062206e6f74207361746973666960608201527f65642c20616363757261637920646966666572656e636520000000000000000060808201526020810185905290516000805160206200a6e58339815191529181900360a00190a16000805160206200a6e58339815191528560405162000e5c9190620082e2565b60405180910390a16000805160206200a6e58339815191528460405162000e8491906200831b565b60405180910390a162000e9662006469565b5050505050565b601854604080516385d4cad360e01b8152905162000f2b926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562000eea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f10919062008346565b73853d955acef822db058eb8505911ed77f175b99e6200636f565b6018546040805163f02c6d8f60e01b8152905162000f78926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa15801562000616573d6000803e3d6000fd5b60185460408051633fc3ddeb60e11b8152905162000fc5926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa15801562000517573d6000803e3d6000fd5b565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200100f93908216929116906801158e460913d000009060040162008114565b6020604051808303816000875af11580156200102f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001055919062007f62565b62001064576200106462008138565b601854600354604051630bca8bcd60e01b81526001600160a01b039182166004820152620010b9929190911690630bca8bcd906024015b602060405180830381865afa15801562000616573d6000803e3d6000fd5b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562001108573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200112e919062007f62565b50601854600154604051630bca8bcd60e01b81526001600160a01b0391821660048201526200116b929190911690630bca8bcd906024016200109b565b601854604051630bca8bcd60e01b81526000600482015262000fc5916001600160a01b031690630bca8bcd906024016200109b565b6018546040805163f02c6d8f60e01b81529051620011ed926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa15801562000616573d6000803e3d6000fd5b60185460408051633fc3ddeb60e11b815290516200123a926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa15801562000517573d6000803e3d6000fd5b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562001289573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012af919062007f62565b620012be57620012be62008138565b6018546040805163f02c6d8f60e01b8152905162001338926001600160a01b03169163f02c6d8f9160048083019260209291908290030181865afa1580156200130b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013319190620080fa565b42620062ac565b60185460408051633fc3ddeb60e11b8152905162000fc5926001600160a01b031691637f87bbd69160048083019260209291908290030181865afa15801562000735573d6000803e3d6000fd5b601854604080516385d4cad360e01b8152905169d3c21bcecceda1000000926200141a926001600160a01b03909116916385d4cad3916004808201926020929091908290030181865afa158015620013e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001407919062008346565b6018546001600160a01b0316836200656d565b6003546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a6a5833981519152906306447d5690602401600060405180830381600087803b1580156200146f57600080fd5b505af115801562001484573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc9450620014c8939283169290911690869060040162008114565b6020604051808303816000875af1158015620014e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200150e919062007f62565b6200151d576200151d62008138565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af11580156200156c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001592919062007f62565b620015a157620015a162008138565b601854604080516385d4cad360e01b8152905162001646926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620015ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001614919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a08231906024016200109b565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001695573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016bb919062007f62565b620016ca57620016ca62008138565b601854604080516385d4cad360e01b81529051620017ce926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001717573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200173d919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562001787573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017ad9190620080fa565b6064620017bc84600c620082c8565b620017c89190620082b1565b620062ac565b620017dc6224ea0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200182b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001851919062007f62565b62001860576200186062008138565b601854604080516385d4cad360e01b8152905162001952926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620018ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018d3919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa1580156200191d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019439190620080fa565b6064620017bc846014620082c8565b620019606224ea0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620019af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019d5919062007f62565b620019e457620019e462008138565b601854604080516385d4cad360e01b8152905162001ad6926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001a31573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a57919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562001aa1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ac79190620080fa565b6064620017bc84601c620082c8565b62001ae4626ebe0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001b33573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b59919062007f62565b62001b685762001b6862008138565b601854604080516385d4cad360e01b8152905162001c5a926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001bb5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bdb919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562001c25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c4b9190620080fa565b6064620017bc846034620082c8565b62001c6862dd7c0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562001cb7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001cdd919062007f62565b62001cec5762001cec62008138565b601854604080516385d4cad360e01b8152905162001dd7926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562001d39573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d5f919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a08231906024015b602060405180830381865afa15801562001daa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001dd09190620080fa565b82620062ac565b6000805160206200a6c583398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562001e2557600080fd5b505af115801562000e96573d6000803e3d6000fd5b6003546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262001e869291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007f48565b6020604051808303816000875af115801562001ea6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ecc919062007f62565b1562001edc5762001edc62008138565b6001546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262001f289291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007f48565b6020604051808303816000875af115801562001f48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f6e919062007f62565b1562001f7e5762001f7e62008138565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262001fca9291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007f48565b6020604051808303816000875af115801562001fea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002010919062007f62565b1562002020576200202062008138565b600254601854604080516385d4cad360e01b815290516001600160a01b03938416936305e31e3693169182916385d4cad3916004808201926020929091908290030181865afa15801562002078573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200209e919062008346565b6040518363ffffffff1660e01b8152600401620020bd92919062007f48565b6020604051808303816000875af1158015620020dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002103919062007f62565b1562002113576200211362008138565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e36926200214c9291169060009060040162007f48565b6020604051808303816000875af11580156200216c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002192919062007f62565b15620021a257620021a262008138565b601854620021df9073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906001600160a01b0316620021d9620f42406064620082c8565b6200656d565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e36926200222b9291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007f48565b6020604051808303816000875af11580156200224b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002271919062007f62565b62000fc55762000fc562008138565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620022c79390821692911690678ac7230489e800009060040162008114565b6020604051808303816000875af1158015620022e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200230d919062007f62565b6200231c576200231c62008138565b60035460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f49362002359939082169291169060040162007f48565b6020604051808303816000875af115801562002379573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200239f919062007f62565b15620023af57620023af62008138565b60015460185460405163342e503d60e21b81526001600160a01b039283169263d0b940f492620023e792911690849060040162007f48565b6020604051808303816000875af115801562002407573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200242d919062007f62565b156200243d576200243d62008138565b60025460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f4936200247a939082169291169060040162007f48565b6020604051808303816000875af11580156200249a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024c0919062007f62565b620024cf57620024cf62008138565b6002546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a6a5833981519152906306447d5690602401600060405180830381600087803b1580156200252457600080fd5b505af115801562002539573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f72000000000000000060648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b158015620025d957600080fd5b505af1158015620025ee573d6000803e3d6000fd5b505060185460035460405163084e292f60e31b81526001600160a01b0391821660048201529116925063427149789150602401600060405180830381600087803b1580156200263c57600080fd5b505af115801562002651573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f74206265206164647265737328302900000000000060648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b158015620026f157600080fd5b505af115801562002706573d6000803e3d6000fd5b505060185460405163084e292f60e31b8152600060048201526001600160a01b039091169250634271497891506024015b600060405180830381600087803b1580156200275257600080fd5b505af115801562002767573d6000803e3d6000fd5b505050506000805160206200a6c583398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620027b957600080fd5b505af1158015620027ce573d6000803e3d6000fd5b50505050565b600084158015620027e3575081155b15620027f2575060006200282a565b838303620028025750816200282a565b836200280f81856200817a565b6200281b908762008366565b6200282791906200837d565b90505b949350505050565b6000838152600460208190526040808320805460019091015491516370a0823160e01b81526001600160a01b0387811694820194909452921692909183906370a0823190602401602060405180830381865afa15801562002897573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028bd9190620080fa565b6000546040519192506201000090046001600160a01b0316906370ca10bb908590620028f0908990879060200162008393565b6040516020818303038152906040528051906020012087856200291491906200837d565b6040516001600160e01b031960e086901b1681526200293993929190600401620083ac565b600060405180830381600087803b1580156200295457600080fd5b505af115801562002969573d6000803e3d6000fd5b50506040516370a0823160e01b81526001600160a01b03888116600483015262000d859350861691506370a0823190602401602060405180830381865afa158015620029b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029df9190620080fa565b620017c886846200837d565b601854604080516385d4cad360e01b8152905162002a7c926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562002a38573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a5e919062008346565b6018546001600160a01b03166a0422ca8b0a00a4250000006200656d565b6003546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a6a5833981519152906306447d5690602401600060405180830381600087803b15801562002ad157600080fd5b505af115801562002ae6573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f7200000000000060648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b15801562002b8657600080fd5b505af115801562002b9b573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002bf057600080fd5b505af115801562002c05573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc945062002c5393928316929091169069d3c21bcecceda10000009060040162008114565b6020604051808303816000875af115801562002c73573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c99919062007f62565b62002ca85762002ca862008138565b60405163f28dceb360e01b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b60648201526000805160206200a6a58339815191529063f28dceb390608401600060405180830381600087803b15801562002d3257600080fd5b505af115801562002d47573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002d9c57600080fd5b505af115801562002db1573d6000803e3d6000fd5b5050600254601854604051636de416d560e11b81526001600160a01b0391821660048201529116925063dbc82daa91506024016020604051808303816000875af115801562002e04573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e2a919062007f62565b62002e395762002e3962008138565b601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002e8a57600080fd5b505af115801562002e9f573d6000803e3d6000fd5b5050505062002eb26301dfe20062006581565b601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002f0357600080fd5b505af115801562002f18573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b60648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b15801562002faf57600080fd5b505af115801562002fc4573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200275257600080fd5b6200303b8169152d02c7e14af68000006a52b7d2dcc80cd2e4000000620065dc565b905062003095601860009054906101000a90046001600160a01b03166001600160a01b03166385d4cad36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620013e1573d6000803e3d6000fd5b6003546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a6a5833981519152906306447d5690602401600060405180830381600087803b158015620030ea57600080fd5b505af1158015620030ff573d6000803e3d6000fd5b5050600254601854600354604051631b13e53760e21b81526001600160a01b039384169550636c4f94dc945062003143939283169290911690869060040162008114565b6020604051808303816000875af115801562003163573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003189919062007f62565b62003198576200319862008138565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af1158015620031e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200320d919062007f62565b6200321c576200321c62008138565b601854604080516385d4cad360e01b8152905162003269926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620015ee573d6000803e3d6000fd5b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620032b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032de919062007f62565b620032ed57620032ed62008138565b601854604080516385d4cad360e01b81529051620033fa926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa1580156200333a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003360919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620033aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033d09190620080fa565b6064620033df84600c620082c8565b620033eb9190620082b1565b670de0b6b3a764000062000d8d565b620034086224ea0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562003457573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200347d919062007f62565b6200348c576200348c62008138565b601854604080516385d4cad360e01b815290516200357e926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620034d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620034ff919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562003549573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200356f9190620080fa565b6064620033df846014620082c8565b6200358c6224ea0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620035db573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003601919062007f62565b62003610576200361062008138565b601854604080516385d4cad360e01b8152905162003702926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa1580156200365d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003683919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620036cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620036f39190620080fa565b6064620033df84601c620082c8565b62003710626ebe0062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af11580156200375f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003785919062007f62565b62003794576200379462008138565b601854604080516385d4cad360e01b8152905162001c5a926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620037e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003807919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562003851573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620038779190620080fa565b6064620033df846034620082c8565b600354601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620038cd9390821692911690678ac7230489e800009060040162008114565b6020604051808303816000875af1158015620038ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003913919062007f62565b1562003923576200392362008138565b600154601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc9262003965929116908490678ac7230489e800009060040162008114565b6020604051808303816000875af115801562003985573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620039ab919062007f62565b15620039bb57620039bb62008138565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362003a029390821692911690678ac7230489e800009060040162008114565b6020604051808303816000875af115801562003a22573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003a48919062007f62565b62003a575762003a5762008138565b6002546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200a6a5833981519152906306447d5690602401600060405180830381600087803b15801562003aac57600080fd5b505af115801562003ac1573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b60648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b15801562003b5857600080fd5b505af115801562003b6d573d6000803e3d6000fd5b505060185460015460405163ec20b45760e01b81526001600160a01b03928316945063ec20b457935062003bb29290911690678ac7230489e800009060040162008393565b600060405180830381600087803b15801562003bcd57600080fd5b505af115801562003be2573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f742062652061646472657373283029000000000000000060648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b15801562003c8257600080fd5b505af115801562003c97573d6000803e3d6000fd5b505060185460405163ec20b45760e01b81526001600160a01b03909116925063ec20b457915062003cd890600090678ac7230489e800009060040162008393565b600060405180830381600087803b15801562003cf357600080fd5b505af115801562003d08573d6000803e3d6000fd5b505060405163f28dceb360e01b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b60648201526000805160206200a6a5833981519152925063f28dceb39150608401600060405180830381600087803b15801562003da057600080fd5b505af115801562003db5573d6000803e3d6000fd5b505060185460035460405163ec20b45760e01b81526001600160a01b03928316945063ec20b457935062002737929091169060009060040162008393565b60185462003e2a9073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906001600160a01b0316620021d9620f42406064620082c8565b6018546040516370a0823160e01b81526001600160a01b03909116600482015262003ec39073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a08231906024015b602060405180830381865afa15801562003e8d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003eb39190620080fa565b620017c8620f42406064620082c8565b6002546040516370a0823160e01b81526001600160a01b03909116600482015262003f0d9073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a08231906024016200109b565b6002546018546040516302f18f1b60e11b81526001600160a01b03928316926305e31e369262003f599291169073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489060040162007f48565b6020604051808303816000875af115801562003f79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003f9f919062007f62565b62003fae5762003fae62008138565b6018546040516370a0823160e01b81526001600160a01b03909116600482015262003ff89073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a08231906024016200109b565b6002546040516370a0823160e01b81526001600160a01b03909116600482015262000fc59073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a082319060240162003e6f565b6000604051620040529062007e1a565b604051809103906000f0801580156200406f573d6000803e3d6000fd5b50600254601854600154604051631b13e53760e21b81529394506001600160a01b0392831693636c4f94dc93620040b8938116921690678ac7230489e800009060040162008114565b6020604051808303816000875af1158015620040d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620040fe919062007f62565b6200410d576200410d62008138565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc936200415593908216929116906801158e460913d000009060040162008114565b6020604051808303816000875af115801562004175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200419b919062007f62565b620041aa57620041aa62008138565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc92620041ed9291169085906801a055690d9db800009060040162008114565b6020604051808303816000875af11580156200420d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004233919062007f62565b62004242576200424262008138565b6018546001546040516337bde4df60e11b81526001600160a01b0391821660048201526200427e929190911690636f7bc9be9060240162000717565b6018546003546040516337bde4df60e11b81526001600160a01b039182166004820152620042ba929190911690636f7bc9be9060240162000717565b6018546040516337bde4df60e11b81526001600160a01b038381166004830152620042f0921690636f7bc9be9060240162000717565b60185460408051632856c13d60e11b815290516000926001600160a01b0316916350ad827a91600480830192869291908290030181865afa1580156200433a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200436491908101906200801f565b90506200437481516003620062ac565b6200438e816000815181106200080b576200080b6200814e565b620043a8816000815181106200084357620008436200814e565b620043c2816000815181106200087857620008786200814e565b620043fa81600181518110620043dc57620043dc6200814e565b6020908102919091010151516003546001600160a01b03166200636f565b62004430816001815181106200441457620044146200814e565b6020026020010151602001516801158e460913d00000620062ac565b6200444a816001815181106200087857620008786200814e565b62004477816002815181106200446457620044646200814e565b602002602001015160000151836200636f565b620044ad816002815181106200449157620044916200814e565b6020026020010151602001516801a055690d9db80000620062ac565b620044c7816002815181106200087857620008786200814e565b60025460185460015460405163342e503d60e21b81526001600160a01b039384169363d0b940f49362004504939082169291169060040162007f48565b6020604051808303816000875af115801562004524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200454a919062007f62565b62004559576200455962008138565b6018546001546040516337bde4df60e11b81526001600160a01b03918216600482015262004595929190911690636f7bc9be90602401620004f9565b6018546003546040516337bde4df60e11b81526001600160a01b039182166004820152620045d1929190911690636f7bc9be9060240162000717565b6018546040516337bde4df60e11b81526001600160a01b03848116600483015262004607921690636f7bc9be9060240162000717565b601860009054906101000a90046001600160a01b03166001600160a01b03166350ad827a6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156200465b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200468591908101906200801f565b90506200469581516002620062ac565b620046af816000815181106200446457620044646200814e565b620046c9816000815181106200449157620044916200814e565b620046e3816000815181106200087857620008786200814e565b620046fd81600181518110620043dc57620043dc6200814e565b62004717816001815181106200441457620044146200814e565b62004731816001815181106200087857620008786200814e565b5050565b604051620047439062007e1a565b604051809103906000f08015801562004760573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b03929092169190911790556040516200478f9062007e1a565b604051809103906000f080158015620047ac573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b0392909216919091179055604051620047db9062007e1a565b604051809103906000f080158015620047f8573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008054610100900460ff16156200483c5750600054610100900460ff1690565b60006000805160206200a6a58339815191523b1562004947576040516000906000805160206200a6a5833981519152907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc490620048a99083906519985a5b195960d21b9060200162008393565b60408051601f1981840301815290829052620048c99291602001620083f3565b60408051601f1981840301815290829052620048e59162008426565b6000604051808303816000865af19150503d806000811462004924576040519150601f19603f3d011682016040523d82523d6000602084013e62004929565b606091505b509150508080602001905181019062004943919062007f62565b9150505b919050565b60006200495d8484846000620027d4565b90505b9392505050565b620049898169152d02c7e14af68000006a52b7d2dcc80cd2e4000000620065dc565b905062004a22601860009054906101000a90046001600160a01b03166001600160a01b03166385d4cad36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620049e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004a09919062008346565b6018546001600160a01b0316620021d9846003620082c8565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562004a71573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004a97919062007f62565b62004aa65762004aa662008138565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362004ae59390821692911690869060040162008114565b6020604051808303816000875af115801562004b05573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b2b919062007f62565b62004b3a5762004b3a62008138565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362004b799390821692911690869060040162008114565b6020604051808303816000875af115801562004b99573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004bbf919062007f62565b62004bce5762004bce62008138565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc9262004c08929116908490869060040162008114565b6020604051808303816000875af115801562004c28573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004c4e919062007f62565b62004c5d5762004c5d62008138565b62004c6b6212750062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004cba573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004ce0919062007f62565b62004cef5762004cef62008138565b601854604080516385d4cad360e01b8152905162004d3c926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa1580156200333a573d6000803e3d6000fd5b62004d4a62cb070062006581565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004d99573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004dbf919062007f62565b62004dce5762004dce62008138565b601854604080516385d4cad360e01b8152905162004ec0926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562004e1b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004e41919062008346565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801562004e8b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004eb19190620080fa565b6064620033df84603c620082c8565b62004ece62b8920062006581565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562004f1d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004f43919062007f62565b62004f525762004f5262008138565b601854604080516385d4cad360e01b8152905162004ff7926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562004f9f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004fc5919062008346565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162001d8c565b620050066301dfe20062006581565b600254601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562005055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200507b919062007f62565b6200508a576200508a62008138565b601854604080516385d4cad360e01b815290516200090e926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620050d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620050fd919062008346565b6002546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162001d8c565b600254601854600354604051631b13e53760e21b815269d3c21bcecceda1000000936001600160a01b0390811693636c4f94dc936200517993918316921690869060040162008114565b6020604051808303816000875af115801562005199573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620051bf919062007f62565b620051ce57620051ce62008138565b6018546003546040516388a772ef60e01b81526001600160a01b0391821660048201526200520a9291909116906388a772ef9060240162001d8c565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005259573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200527f919062007f62565b6200528e576200528e62008138565b6200529c626ebe0062006581565b60006064620052ad836008620082c8565b620052b99190620082b1565b620052c6906003620082c8565b6064620052d584600c620082c8565b620052e19190620082b1565b620052ed91906200837d565b601854600354604051630bca8bcd60e01b81526001600160a01b0391821660048201529293506200532a92911690630bca8bcd9060240162001d8c565b62005339630127500062006581565b606462005348836008620082c8565b620053549190620082b1565b6200536190600b620082c8565b60646200537084600c620082c8565b6200537c9190620082b1565b6200538891906200837d565b601854600354604051630bca8bcd60e01b81526001600160a01b039182166004820152929350620053c592911690630bca8bcd9060240162001d8c565b601854600354604051630bca8bcd60e01b81526001600160a01b03918216600482015262004731929190911690630bca8bcd90602401602060405180830381865afa15801562005419573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200543f9190620080fa565b83620062ac565b601854604080516385d4cad360e01b8152905162005493926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562002a38573d6000803e3d6000fd5b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af1158015620054e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005508919062007f62565b62005517576200551762008138565b600254601854600354604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc9362005560939082169291169069d3c21bcecceda10000009060040162008114565b6020604051808303816000875af115801562005580573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620055a6919062007f62565b620055b557620055b562008138565b600254601854600154604051631b13e53760e21b81526001600160a01b0393841693636c4f94dc93620055fe939082169291169069d3c21bcecceda10000009060040162008114565b6020604051808303816000875af11580156200561e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005644919062007f62565b62005653576200565362008138565b600254601854604051631b13e53760e21b81526001600160a01b0392831692636c4f94dc926200569792911690849069d3c21bcecceda10000009060040162008114565b6020604051808303816000875af1158015620056b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620056dd919062007f62565b620056ec57620056ec62008138565b620056fa6212750062006581565b600354601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562005749573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200576f919062007f62565b6200577e576200577e62008138565b601854604080516385d4cad360e01b8152905162005872926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa158015620057cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620057f1919062008346565b6003546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa1580156200583b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620058619190620080fa565b691969368974c05b000000620062ac565b6200588062cb070062006581565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af1158015620058cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620058f5919062007f62565b62005904576200590462008138565b601854604080516385d4cad360e01b81529051620059f8926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562005951573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005977919062008346565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015620059c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620059e79190620080fa565b697f0e10af47c1c7000000620062ac565b62005a0662b8920062006581565b600154601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562005a55573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005a7b919062007f62565b62005a8a5762005a8a62008138565b601854604080516385d4cad360e01b8152905162005b7f926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562005ad7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005afd919062008346565b6001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a08231906024015b602060405180830381865afa15801562005b48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005b6e9190620080fa565b69d3c21bcecceda1000000620062ac565b62005b8e6301dfe20062006581565b600254601854604051631c62282160e21b81526001600160a01b039182166004820152911690637188a084906024016020604051808303816000875af115801562005bdd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005c03919062007f62565b62005c125762005c1262008138565b601854604080516385d4cad360e01b8152905162000fc5926001600160a01b0316916385d4cad39160048083019260209291908290030181865afa15801562005c5f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005c85919062008346565b6002546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240162005b2a565b60046020527ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603c80546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481790915560097ffc222f0ac3e8ec5d72a1ee6fc08a2effbdf59ce4c70b15039ef2450cdacd603d557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13e80548216736b175474e89094c44da98b954eedeac495271d0f17905560027f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf13f557f64cadafca984d1079a7dc29de3a8c5d7d075830d7d40b27b92792eb7826cf1408054821673aed0c38402a5d19df6e4c03f4e2dced6e29c1ee91790557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d268054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560037f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d27557f6c6dba33c46363b8b7eea88860ee3afc44cd7a2c4f9238b927d748916e372d2880548216735f4ec3df9cbd43714fe2740f5e3616155c5b8419179055635742544360e01b60009081527f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691d980548316732260fac5e5542a773aa44fbcfedf7c193bc2c5991790557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691da557f54531036fe3144f81e7b9854ba62be379be395f33d2a38ae250eca97301691db805490911673f4030086522a5beea4988f8ca5b36dbc97bee88c179055565b600354601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005f5f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005f85919062007f62565b1562005f955762005f9562008138565b600154601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562005fe4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200600a919062007f62565b156200601a576200601a62008138565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af115801562006069573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200608f919062007f62565b6200609e576200609e62008138565b600254601854604051636de416d560e11b81526001600160a01b03918216600482015291169063dbc82daa906024016020604051808303816000875af1158015620060ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006113919062007f62565b1562000fc55762000fc562008138565b8015158215151462004731577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516200619a9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6040820152616c5d60f01b606082015260800190565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf358381620061ed576040518060400160405280600581526020016466616c736560d81b8152506200620b565b604051806040016040528060048152602001637472756560e01b8152505b6040516200621a919062008472565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583826200626d576040518060400160405280600581526020016466616c736560d81b8152506200628b565b604051806040016040528060048152602001637472756560e01b8152505b6040516200629a9190620084b1565b60405180910390a16200473162006469565b80821462004731577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516200631f9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a16000805160206200a6e583398151915281604051620063479190620082e2565b60405180910390a16000805160206200a6e5833981519152826040516200629a91906200831b565b806001600160a01b0316826001600160a01b03161462004731577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620063f79060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464604082015264726573735d60d81b606082015260800190565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f81604051620064309190620084dc565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f826040516200629a919062008521565b6000805160206200a6a58339815191523b156200655c576040516000906000805160206200a6a5833981519152907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc490620064d79083906519985a5b195960d21b90600190602001620083ac565b60408051601f1981840301815290829052620064f79291602001620083f3565b60408051601f1981840301815290829052620065139162008426565b6000604051808303816000865af19150503d806000811462006552576040519150601f19603f3d011682016040523d82523d6000602084013e62006557565b606091505b505050505b6000805461ff001916610100179055565b6200657c83838360006200661d565b505050565b6000805160206200a6a583398151915263e5d6bf02620065a283426200837d565b6040518263ffffffff1660e01b8152600401620065c191815260200190565b600060405180830381600087803b15801562001e2557600080fd5b6000620065eb84848462006826565b9050620049606040518060400160405280600c81526020016b109bdd5b990814995cdd5b1d60a21b8152508262006a1d565b604080516001600160a01b0385811660248084019190915283518084039091018152604490920183526020820180516001600160e01b03166370a0823160e01b1790529151600092871691620066739162008426565b6000604051808303816000865af19150503d8060008114620066b2576040519150601f19603f3d011682016040523d82523d6000602084013e620066b7565b606091505b50915050600081806020019051810190620066d39190620080fa565b90506200670d846200670687620066ff6370a0823160e01b620066f8600a8d62006abd565b9062006ae7565b9062006b05565b9062006b2e565b821562000d855760408051600481526024810182526020810180516001600160e01b03166318160ddd60e01b17905290516000916001600160a01b0389169162006758919062008426565b6000604051808303816000865af19150503d806000811462006797576040519150601f19603f3d011682016040523d82523d6000602084013e6200679c565b606091505b50915050600081806020019051810190620067b89190620080fa565b905082861015620067e357620067cf86846200817a565b620067db90826200817a565b9050620067fe565b620067ef83876200817a565b620067fb90826200837d565b90505b6200681c81620067066318160ddd60e01b620066f8600a8d62006abd565b5050505050505050565b600081831115620068a45760405162461bcd60e51b815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e000060648201526084015b60405180910390fd5b828410158015620068b55750818411155b15620068c357508262004960565b6000620068d184846200817a565b620068de9060016200837d565b905060038511158015620068f157508481115b156200690c576200690385856200837d565b91505062004960565b6200691b60036000196200817a565b851015801562006937575062006934856000196200817a565b81115b1562006957576200694b856000196200817a565b6200690390846200817a565b82851115620069b95760006200696e84876200817a565b905060006200697e838362008366565b905080600003620069955784935050505062004960565b6001620069a382886200837d565b620069af91906200817a565b9350505062006a15565b8385101562006a15576000620069d086866200817a565b90506000620069e0838362008366565b905080600003620069f75785935050505062004960565b62006a0381866200817a565b62006a109060016200837d565b935050505b509392505050565b60006a636f6e736f6c652e6c6f676001600160a01b0316838360405160240162006a499291906200854c565b60408051601f198184030181529181526020820180516001600160e01b0316632d839cb360e21b1790525162006a80919062008426565b600060405180830381855afa9150503d806000811462000d85576040519150601f19603f3d011682016040523d82523d6000602084013e62000d85565b6005820180546001600160a01b0319166001600160a01b0383161790556000825b90505b92915050565b60038201805463ffffffff191660e083901c17905560008262006ade565b6002820180546001810182556000918252602082206001600160a01b0384169101558262006ade565b620047318282600582015460038301546004840154600285018054604080516020808402820181019092528281526001600160a01b039096169560e09590951b946000939092909183018282801562006ba757602002820191906000526020600020905b81548152602001906001019080831162006b92575b5050505050905060008362006bbc8362006e9b565b60405160200162006bcf929190620083f3565b60408051601f198184030181528282526001600160a01b038816600090815260018b0160209081528382206001600160e01b03198a16835281529281209194509092909162006c2391869188910162008570565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff1662006c5e5762006c5c8762006f4f565b505b6001600160a01b0385166000908152602088815260408083206001600160e01b031988168452825280832090519091839162006c9f91879189910162008570565b6040516020818303038152906040528051906020012081526020019081526020016000205460001b9050600080876001600160a01b03168460405162006ce6919062008426565b600060405180830381855afa9150503d806000811462006d23576040519150601f19603f3d011682016040523d82523d6000602084013e62006d28565b606091505b50915062006d4590508162006d3f886020620082c8565b62006f5c565b604051630667f9d760e41b8152909250600091506000805160206200a6a58339815191529063667f9d709062006d82908b90879060040162008393565b602060405180830381865afa15801562006da0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006dc69190620080fa565b905080821462006dea5760405162461bcd60e51b81526004016200689b90620085ac565b6040516370ca10bb60e01b81526000805160206200a6a5833981519152906370ca10bb9062006e22908b9087908e90600401620083ac565b600060405180830381600087803b15801562006e3d57600080fd5b505af115801562006e52573d6000803e3d6000fd5b50505060058b0180546001600160a01b03191690555060038a01805463ffffffff1916905562006e8760028b01600062007e28565b896004016000905550505050505050505050565b606060008251602062006eaf9190620082c8565b67ffffffffffffffff81111562006eca5762006eca62007f82565b6040519080825280601f01601f19166020018201604052801562006ef5576020820181803683370190505b50905060005b835181101562006f4857600084828151811062006f1c5762006f1c6200814e565b60200260200101519050808260200260200184015250808062006f3f9062008647565b91505062006efb565b5092915050565b600062006ae18262006fe6565b6000806000602085511162006f7357845162006f76565b60205b905060005b8181101562006fdc5762006f91816008620082c8565b8662006f9e83886200837d565b8151811062006fb15762006fb16200814e565b01602001516001600160f81b031916901c92909217918062006fd38162008647565b91505062006f7b565b5090949350505050565b600581015460038201546004830154600284018054604080516020808402820181019092528281526000966001600160a01b03169560e01b9493879391929091908301828280156200705857602002820191906000526020600020905b81548152602001906001019080831162007043575b5050506001600160a01b038716600090815260018a01602090815260408083206001600160e01b03198a1684528252808320905195965094919350620070a49250859187910162008570565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff161562007143576001600160a01b0384166000908152602087815260408083206001600160e01b031987168452825280832090519092916200711391859187910162008570565b60405160208183030381529060405280519060200120815260200190815260200160002054945050505050919050565b600083620071518362007cdf565b60405160200162007164929190620083f3565b60405160208183030381529060405290506000805160206200a6c583398151915260001c6001600160a01b031663266cf1096040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620071c357600080fd5b505af1158015620071d8573d6000803e3d6000fd5b50505050600080866001600160a01b031683604051620071f9919062008426565b600060405180830381855afa9150503d806000811462007236576040519150601f19603f3d011682016040523d82523d6000602084013e6200723b565b606091505b5091506200725890508162007252876020620082c8565b62007d8c565b6040516365bc948160e01b81526001600160a01b0389166004820152909250600091506000805160206200a6a5833981519152906365bc9481906024016000604051808303816000875af1158015620072b5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620072df9190810190620086d0565b5090508051600103620075a65760006000805160206200a6c583398151915260001c6001600160a01b031663667f9d7089846000815181106200732657620073266200814e565b60200260200101516040518363ffffffff1660e01b81526004016200734d92919062008393565b602060405180830381865afa1580156200736b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620073919190620080fa565b905080620073f5577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a58883600081518110620073d157620073d16200814e565b602002602001015160001c604051620073ec92919062008393565b60405180910390a15b808314620074175760405162461bcd60e51b81526004016200689b90620085ac565b7f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed888887896040516020016200744f92919062008570565b60405160208183030381529060405280519060200120856000815181106200747b576200747b6200814e565b602002602001015160001c6040516200749894939291906200873b565b60405180910390a181600081518110620074b657620074b66200814e565b6020908102919091018101516001600160a01b038a1660009081528c835260408082206001600160e01b03198c168352845280822090519293909262007501918a918c910162008570565b60408051601f1981840301815291815281516020928301208352828201939093529082016000908120939093556001600160a01b038b16835260018d810182528284206001600160e01b03198c168552825282842092519093916200756b918a918c910162008570565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff19169115159190911790555062007b62565b60018151111562007af15760005b815181101562007aea5760006000805160206200a6c583398151915260001c6001600160a01b031663667f9d708a858581518110620075f757620075f76200814e565b60200260200101516040518363ffffffff1660e01b81526004016200761e92919062008393565b602060405180830381865afa1580156200763c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620076629190620080fa565b905080620076c5577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a589848481518110620076a157620076a16200814e565b602002602001015160001c604051620076bc92919062008393565b60405180910390a15b6000805160206200a6c583398151915260001c6001600160a01b03166370ca10bb8a858581518110620076fc57620076fc6200814e565b602002602001015161133760f01b6040518463ffffffff1660e01b81526004016200772a93929190620083ac565b600060405180830381600087803b1580156200774557600080fd5b505af11580156200775a573d6000803e3d6000fd5b50505050600060608a6001600160a01b0316876040516200777c919062008426565b600060405180830381855afa9150503d8060008114620077b9576040519150601f19603f3d011682016040523d82523d6000602084013e620077be565b606091505b509092509050620077d681620072528b6020620082c8565b9550818015620077ea575061133760f01b86145b1562007a3d577f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed8b8b8a8c6040516020016200782892919062008570565b604051602081830303815290604052805190602001208888815181106200785357620078536200814e565b602002602001015160001c6040516200787094939291906200873b565b60405180910390a18484815181106200788d576200788d6200814e565b6020908102919091018101516001600160a01b038d1660009081528f835260408082206001600160e01b03198f1683528452808220905192939092620078d8918d918f910162008570565b6040516020818303038152906040528051906020012081526020019081526020016000208190555060018d60010160008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c6001600160e01b0319166001600160e01b031916815260200190815260200160002060008a8c6040516020016200796592919062008570565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548160ff0219169083151502179055506000805160206200a6c583398151915260001c6001600160a01b03166370ca10bb8c878781518110620079d757620079d76200814e565b6020026020010151866040518463ffffffff1660e01b815260040162007a0093929190620083ac565b600060405180830381600087803b15801562007a1b57600080fd5b505af115801562007a30573d6000803e3d6000fd5b5050505050505062007aea565b6000805160206200a6c583398151915260001c6001600160a01b03166370ca10bb8c87878151811062007a745762007a746200814e565b6020026020010151866040518463ffffffff1660e01b815260040162007a9d93929190620083ac565b600060405180830381600087803b15801562007ab857600080fd5b505af115801562007acd573d6000803e3d6000fd5b50505050505050808062007ae19062008647565b915050620075b4565b5062007b62565b6040805162461bcd60e51b81526020600482015260248101919091527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e60648201526084016200689b565b6001600160a01b038716600090815260018a01602090815260408083206001600160e01b03198a1684528252808320905190929162007ba69188918a910162008570565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff1662007c355760405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b60648201526084016200689b565b6005890180546001600160a01b031916905560038901805463ffffffff1916905562007c6660028a01600062007e28565b600060048a018190556001600160a01b038816815260208a815260408083206001600160e01b03198a1684528252808320905190929162007cac9188918a910162008570565b60405160208183030381529060405280519060200120815260200190815260200160002054975050505050505050919050565b606060008251602062007cf39190620082c8565b67ffffffffffffffff81111562007d0e5762007d0e62007f82565b6040519080825280601f01601f19166020018201604052801562007d39576020820181803683370190505b50905060005b835181101562006f4857600084828151811062007d605762007d606200814e565b60200260200101519050808260200260200184015250808062007d839062008647565b91505062007d3f565b6000806000602085511162007da357845162007da6565b60205b905060005b8181101562006fdc5762007dc1816008620082c8565b8662007dce83886200837d565b8151811062007de15762007de16200814e565b01602001516001600160f81b031916901c92909217918062007e038162008647565b91505062007dab565b611962806200876c83390190565b6105d7806200a0ce83390190565b50805460008255906000526020600020908101906200090e91905b8082111562007e59576000815560010162007e43565b5090565b60008060006060848603121562007e7357600080fd5b505081359360208301359350604090920135919050565b80151581146200090e57600080fd5b6000806000806080858703121562007eb057600080fd5b843593506020850135925060408501359150606085013562007ed28162007e8a565b939692955090935050565b6001600160a01b03811681146200090e57600080fd5b60008060006060848603121562007f0957600080fd5b83359250602084013562007f1d8162007edd565b929592945050506040919091013590565b60006020828403121562007f4157600080fd5b5035919050565b6001600160a01b0392831681529116602082015260400190565b60006020828403121562007f7557600080fd5b8151620049608162007e8a565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171562007fbe5762007fbe62007f82565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562007ff05762007ff062007f82565b604052919050565b600067ffffffffffffffff82111562008015576200801562007f82565b5060051b60200190565b600060208083850312156200803357600080fd5b825167ffffffffffffffff8111156200804b57600080fd5b8301601f810185136200805d57600080fd5b8051620080746200806e8262007ff8565b62007fc4565b818152606091820283018401918482019190888411156200809457600080fd5b938501935b83851015620080ee5780858a031215620080b35760008081fd5b620080bd62007f98565b8551620080ca8162007edd565b81528587015187820152604080870151908201528352938401939185019162008099565b50979650505050505050565b6000602082840312156200810d57600080fd5b5051919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111562006ae15762006ae162008164565b600181815b80851115620081d1578160001904821115620081b557620081b562008164565b80851615620081c357918102915b93841c939080029062008195565b509250929050565b600082620081ea5750600162006ae1565b81620081f95750600062006ae1565b81600181146200821257600281146200821d576200823d565b600191505062006ae1565b60ff84111562008231576200823162008164565b50506001821b62006ae1565b5060208310610133831016604e8410600b841016171562008262575081810a62006ae1565b6200826e838362008190565b806000190482111562008285576200828562008164565b029392505050565b600062006ade8383620081d9565b634e487b7160e01b600052601260045260246000fd5b600082620082c357620082c36200829b565b500490565b808202811582820484141762006ae15762006ae162008164565b6040815260006200830d60408301600a8152690808115e1c1958dd195960b21b602082015260400190565b905082602083015292915050565b6040815260006200830d60408301600a815269080808081058dd1d585b60b21b602082015260400190565b6000602082840312156200835957600080fd5b8151620049608162007edd565b6000826200837857620083786200829b565b500690565b8082018082111562006ae15762006ae162008164565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b83811015620083ea578181015183820152602001620083d0565b50506000910152565b6001600160e01b031983168152815160009062008418816004850160208701620083cd565b919091016004019392505050565b600082516200843a818460208701620083cd565b9190910192915050565b600081518084526200845e816020860160208601620083cd565b601f01601f19169290920160200192915050565b6040815260006200849d60408301600a8152690808115e1c1958dd195960b21b602082015260400190565b82810360208401526200282a818562008444565b6040815260006200849d60408301600a815269080808081058dd1d585b60b21b602082015260400190565b6040815260006200850760408301600a8152690808115e1c1958dd195960b21b602082015260400190565b6001600160a01b0393909316602092909201919091525090565b6040815260006200850760408301600a815269080808081058dd1d585b60b21b602082015260400190565b60408152600062008561604083018562008444565b90508260208301529392505050565b825160009082906020808701845b838110156200859c578151855293820193908201906001016200857e565b5050948252509092019392505050565b6020808252606f908201527f73746453746f726167652066696e642853746453746f72616765293a2050616360408201527f6b656420736c6f742e205468697320776f756c642063617573652064616e676560608201527f726f7573206f76657277726974696e6720616e642063757272656e746c79206960808201526e39b713ba1039bab83837b93a32b21760891b60a082015260c00190565b6000600182016200865c576200865c62008164565b5060010190565b600082601f8301126200867557600080fd5b81516020620086886200806e8362007ff8565b82815260059290921b84018101918181019086841115620086a857600080fd5b8286015b84811015620086c55780518352918301918301620086ac565b509695505050505050565b60008060408385031215620086e457600080fd5b825167ffffffffffffffff80821115620086fd57600080fd5b6200870b8683870162008663565b935060208501519150808211156200872257600080fd5b50620087318582860162008663565b9150509250929050565b6001600160a01b039490941684526001600160e01b0319929092166020840152604083015260608201526080019056fe60a06040523480156200001157600080fd5b5060405162001962380380620019628339810160408190526200003491620001b2565b600080546001600160a01b0319163390811782556040519091829160008051602062001942833981519152908290a3506001600160a01b0382166080526200007c8162000084565b5050620001ea565b6000546001600160a01b03163314620000e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0381166200014b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620000db565b600080546040516001600160a01b03808516939216916000805160206200194283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b0381168114620001ad57600080fd5b919050565b60008060408385031215620001c657600080fd5b620001d18362000195565b9150620001e16020840162000195565b90509250929050565b60805161172e62000214600039600081816101d7015281816108320152610be5015261172e6000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806385d4cad3116100ad578063d36862e811610071578063d36862e814610251578063dd46706414610264578063ec20b45714610277578063f02c6d8f1461028a578063f2fde38b1461029357600080fd5b806385d4cad3146101d257806388a772ef146102115780638da5cb5b14610224578063a145f1b514610235578063c7e42b1b1461023e57600080fd5b806350ad827a116100f457806350ad827a1461016d5780635b904cb7146101825780636f7bc9be1461018a578063715018a6146101bd5780637f87bbd6146101c557600080fd5b806308ac7624146101265780630bca8bcd1461013d57806342714978146101505780634e71d92d14610165575b600080fd5b6005545b6040519081526020015b60405180910390f35b61012a61014b366004611501565b6102a6565b61016361015e366004611501565b61041e565b005b6101636106ac565b610175610989565b6040516101349190611523565b610163610a0b565b6101ad610198366004611501565b60076020526000908152604090205460ff1681565b6040519015158152602001610134565b610163610aea565b6004546101ad9060ff1681565b6101f97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610134565b61012a61021f366004611501565b610b5e565b6000546001600160a01b03166101f9565b61012a60055481565b61016361024c366004611501565b610bb9565b61012a61025f366004611501565b610f4b565b610163610272366004611585565b610fa6565b61016361028536600461159e565b61103d565b61012a60035481565b6101636102a1366004611501565b611302565b6001600160a01b03811660009081526007602052604081205460ff1680156102d0575060045460ff165b156104115760006102e0836113ec565b905060006102ed84610b5e565b90508060068381548110610303576103036115c8565b90600052602060002090600302016002015410610324575060009392505050565b60006224ea006003544261033891906115f4565b610342919061160d565b90506000606461035384600861162f565b61035d919061160d565b610367908361162f565b606461037485600c61162f565b61037e919061160d565b6103889190611646565b9050828111806103995750600b8210155b156103d557600684815481106103b1576103b16115c8565b906000526020600020906003020160020154836103ce91906115f4565b9050610408565b600684815481106103e8576103e86115c8565b9060005260206000209060030201600201548161040591906115f4565b90505b95945050505050565b506000919050565b919050565b6000546001600160a01b031633146104515760405162461bcd60e51b815260040161044890611659565b60405180910390fd5b6001600160a01b0381166104cd5760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a72656d6f7665496e766573746f72282920616360448201527f636f756e742063616e6e6f7420626520616464726573732830290000000000006064820152608401610448565b60006104d8826113ec565b90506000600682815481106104ef576104ef6115c8565b600091825260209182902060408051606081018252600390930290910180546001600160a01b03168352600180820154948401949094526002015490820152600680549193509161053f916115f4565b8154811061054f5761054f6115c8565b906000526020600020906003020160068381548110610570576105706115c8565b60009182526020909120825460039092020180546001600160a01b0319166001600160a01b039092169190911781556001808301548183015560029283015492909101919091556006805483926105c6916115f4565b815481106105d6576105d66115c8565b600091825260209182902083516003929092020180546001600160a01b0319166001600160a01b03909216919091178155908201516001820155604090910151600290910155600680548061062d5761062d61168e565b6000828152602080822060036000199094019384020180546001600160a01b031916815560018101839055600201829055919092556001600160a01b03851680835260079091526040808320805460ff191690555190917fba0013628ccb89af5bb18edf764d3a7b35c07b894848b8e6fd3434719de39c7d91a2505050565b3360009081526007602052604090205460ff1615156001146107365760405162461bcd60e51b815260206004820152603a60248201527f56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e60448201527f73656e646572206d75737420626520616e20696e766573746f720000000000006064820152608401610448565b60045460ff1661079c5760405162461bcd60e51b815260206004820152602b60248201527f56657374696e672e736f6c3a3a636c61696d28292076657374696e672069732060448201526a1b9bdd08195b98589b195960aa1b6064820152608401610448565b60006107a7336102a6565b9050600081116108165760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686160448201527373206e6f20746f6b656e7320746f20636c61696d60601b6064820152608401610448565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116a4565b6109065760405162461bcd60e51b815260206004820152602a60248201527f56657374696e672e736f6c3a3a636c61696d2829207472616e7366657220756e6044820152691cdd58d8d95cdcd99d5b60b21b6064820152608401610448565b6000610911336113ec565b90508160068281548110610927576109276115c8565b906000526020600020906003020160020160008282546109479190611646565b909155505060408051338152602081018490527fc9ff33ee3842ec05cab3a4e2b17aa19694b6c461ea543be5752366f912a6539d910160405180910390a15050565b60606006805480602002602001604051908101604052809291908181526020016000905b82821015610a02576000848152602090819020604080516060810182526003860290920180546001600160a01b03168352600180820154848601526002909101549183019190915290835290920191016109ad565b50505050905090565b6000546001600160a01b03163314610a355760405162461bcd60e51b815260040161044890611659565b60045460ff1615610aae5760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a656e61626c6556657374696e6728292076657360448201527f74696e6720697320616c726561647920656e61626c65640000000000000000006064820152608401610448565b6004805460ff19166001179055426003556040517ff78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa390600090a1565b6000546001600160a01b03163314610b145760405162461bcd60e51b815260040161044890611659565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b03811660009081526007602052604081205460ff1615610411576000610b8a836113ec565b905060068181548110610b9f57610b9f6115c8565b906000526020600020906003020160010154915050919050565b6000546001600160a01b03163314610be35760405162461bcd60e51b815260040161044890611659565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610c8a5760405162461bcd60e51b815260206004820152603960248201527f56657374696e672e736f6c3a3a7769746864726177457263323028292063616e60448201527f6e6f74207769746864726177202450524f564520746f6b656e000000000000006064820152608401610448565b6001600160a01b038116610d065760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920746f6b60448201527f656e2063616e6e6f7420626520616464726573732830290000000000000000006064820152608401610448565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7191906116c6565b905060008111610de95760405162461bcd60e51b815260206004820152603760248201527f56657374696e672e736f6c3a3a77697468647261774572633230282920696e7360448201527f756666696369656e7420746f6b656e2062616c616e63650000000000000000006064820152608401610448565b6000826001600160a01b031663a9059cbb610e0c6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d91906116a4565b905080610ee75760405162461bcd60e51b815260206004820152603260248201527f56657374696e672e736f6c3a3a776974686472617745726332302829207472616044820152711b9cd9995c881d5b9cdd58d8d95cdcd99d5b60721b6064820152608401610448565b7f3ff9434501bb42cce78344c3420ec1273f8b404aba16aaae994c0d413b91bb4f8383610f1c6000546001600160a01b031690565b604080516001600160a01b039485168152602081019390935292168183015290519081900360600190a1505050565b6001600160a01b03811660009081526007602052604081205460ff1615610411576000610f77836113ec565b905060068181548110610f8c57610f8c6115c8565b906000526020600020906003020160020154915050919050565b6000546001600160a01b03163314610fd05760405162461bcd60e51b815260040161044890611659565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610fff8142611646565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000546001600160a01b031633146110675760405162461bcd60e51b815260040161044890611659565b6001600160a01b03821660009081526007602052604090205460ff16156110ed5760405162461bcd60e51b815260206004820152603460248201527f56657374696e672e736f6c3a3a616464496e766573746f72282920696e7665736044820152731d1bdc881a5cc8185b1c9958591e48185919195960621b6064820152608401610448565b6001600160a01b0382166111695760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f60448201527f756e742063616e6e6f74206265206164647265737328302900000000000000006064820152608401610448565b600081116111d75760405162461bcd60e51b815260206004820152603560248201527f56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b6560448201527406e73546f56657374206d757374206265206774203605c1b6064820152608401610448565b6001600160a01b0382811660008181526007602090815260408083208054600160ff1990911681179091558151606081018352948552918401868152908401838152600680549384018155845293517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600390930292830180546001600160a01b031916919096161790945592517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4084015590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4190920191909155600580548392906112c5908490611646565b90915550506040516001600160a01b038316907f62e6a5118be03f9bfedb79b0ed7ed75ee4a9e15fc4c69d2c4976acde26fa2d5f90600090a25050565b6000546001600160a01b0316331461132c5760405162461bcd60e51b815260040161044890611659565b6001600160a01b0381166113915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610448565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526007602052604081205460ff16151560011461147f5760405162461bcd60e51b815260206004820152603860248201527f56657374696e672e736f6c3a3a6c6f63617465496e766573746f72282920616360448201527f636f756e74206973206e6f7420616e20696e766573746f7200000000000000006064820152608401610448565b6000805b6006548110156114e357836001600160a01b0316600682815481106114aa576114aa6115c8565b60009182526020909120600390910201546001600160a01b0316036114d1578091506114e3565b806114db816116df565b915050611483565b5092915050565b80356001600160a01b038116811461041957600080fd5b60006020828403121561151357600080fd5b61151c826114ea565b9392505050565b602080825282518282018190526000919060409081850190868401855b8281101561157857815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101611540565b5091979650505050505050565b60006020828403121561159757600080fd5b5035919050565b600080604083850312156115b157600080fd5b6115ba836114ea565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115611607576116076115de565b92915050565b60008261162a57634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417611607576116076115de565b80820180821115611607576116076115de565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156116b657600080fd5b8151801515811461151c57600080fd5b6000602082840312156116d857600080fd5b5051919050565b6000600182016116f1576116f16115de565b506001019056fea2646970667358221220d2355449aa619c52df97b3ae1052a171b8fa5fa41104c173bef64d6cc1fd6c1b64736f6c634300081100338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0608060405234801561001057600080fd5b506105b7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305e31e36146100675780636c4f94dc1461008e57806370fa62a3146100a15780637188a084146100b4578063d0b940f4146100c7578063dbc82daa146100da575b600080fd5b61007a6100753660046104b0565b6100ed565b604051901515815260200160405180910390f35b61007a61009c3660046104e3565b6101d8565b61007a6100af3660046104b0565b6102d1565b61007a6100c236600461051f565b610328565b61007a6100d53660046104b0565b6103f0565b61007a6100e836600461051f565b610447565b60408051808201825260168152757769746864726177457263323028616464726573732960501b602082015290516001600160a01b038381166024830152600092919085169082906044015b60408051601f19818403018152908290529161015491610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161018b9190610565565b6000604051808303816000865af19150503d80600081146101c8576040519150601f19603f3d011682016040523d82523d6000602084013e6101cd565b606091505b509095945050505050565b604080518082018252601c81527f616464496e766573746f7228616464726573732c75696e743235362900000000602082015290516001600160a01b038481166024830152604482018490526000929190861690829060640160408051601f19818403018152908290529161024c91610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516102839190610565565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50909695505050505050565b604080518082018252601981527f676574416d6f756e74546f436c61696d28616464726573732900000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b6040805180820182526007815266636c61696d282960c81b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516103a49190610565565b6000604051808303816000865af19150503d80600081146103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b5090949350505050565b604080518082018252601781527f72656d6f7665496e766573746f72286164647265737329000000000000000000602082015290516001600160a01b03838116602483015260009291908516908290604401610139565b604080518082018252600f81526e656e61626c6556657374696e67282960881b602082015281516004815260248101928390526000926001600160a01b038516919061036d908490610565565b80356001600160a01b03811681146104ab57600080fd5b919050565b600080604083850312156104c357600080fd5b6104cc83610494565b91506104da60208401610494565b90509250929050565b6000806000606084860312156104f857600080fd5b61050184610494565b925061050f60208501610494565b9150604084013590509250925092565b60006020828403121561053157600080fd5b61053a82610494565b9392505050565b60005b8381101561055c578181015183820152602001610544565b50506000910152565b60008251610577818460208701610541565b919091019291505056fea2646970667358221220843b2a7925f054aa4267ccb704b85ca5db3172d6fe2b6977a4bbeadddcd28f0164736f6c634300081100330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12db2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a2646970667358221220faefc6049f6baf75498faadfa89c918363fa3341a30b822502f8fa223dfe862364736f6c63430008110033", + "sourceMap": "208:21101:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;277:210;;;:::i;:::-;;4921:861;;;:::i;1745:36:30:-;;1780:1;1745:36;;;;;186:4:32;174:17;;;156:36;;144:2;129:18;1745:36:30;;;;;;;;7044:881:31;;;:::i;4740:583:30:-;;;;;;:::i;:::-;;:::i;5374:479::-;;;;;;:::i;:::-;;:::i;2178:45::-;;2221:2;2178:45;;1829:36;;1864:1;1829:36;;523:207:31;;;:::i;10097:627::-;;;:::i;1481:443::-;;;:::i;13092:1902::-;;;:::i;2019:967::-;;;:::i;5880:1102::-;;;:::i;6028:291:30:-;;;;;;:::i;:::-;;:::i;:::-;;;1244:25:32;;;1232:2;1217:18;6028:291:30;1098:177:32;2262:45:30;;2305:2;2262:45;;4221:461;;;;;;:::i;:::-;;:::i;11947:1092:31:-;;;:::i;2092:45:30:-;;2135:2;2092:45;;17163:1984:31;;;;;;:::i;:::-;;:::i;2005:36:30:-;;2040:1;2005:36;;3699:1165:31;;;:::i;3046:563::-;;;:::i;8020:1974::-;;;:::i;3312:184:30:-;;;:::i;1819:584:0:-;;;:::i;:::-;;;2154:14:32;;2147:22;2129:41;;2117:2;2102:18;1819:584:0;1989:187:32;5861:159:30;;;;;;:::i;:::-;;:::i;19211:2093:31:-;;;;;;:::i;:::-;;:::i;1916:36:30:-;;1951:1;1916:36;;10774:1093:31;;;:::i;15044:2052::-;;;:::i;1655:36:30:-;;1690:1;1655:36;;3620:551;;;:::i;825:596:31:-;;;:::i;1572:26:0:-;;;;;;;;;277:210:31;312:14;:12;:14::i;:::-;337:13;:11;:13::i;:::-;464:3;;409:70;;1136:42:30;;-1:-1:-1;;;;;464:3:31;;409:70;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;399:7:31;:80;;-1:-1:-1;;;;;;399:80:31;-1:-1:-1;;;;;399:80:31;;;;;;;;;;277:210::o;4921:861::-;5027:7;;;5053:3;5027:31;;-1:-1:-1;;;5027:31:31;;-1:-1:-1;;;;;5053:3:31;;;5027:31;;;2636:51:32;5018:53:31;;5027:7;;;;;:17;;2609:18:32;;5027:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5065:5;5018:8;:53::i;:::-;5118:7;;:28;;;-1:-1:-1;;;5118:28:31;;;;5082:33;;-1:-1:-1;;;;;5118:7:31;;:26;;:28;;;;;5082:33;;5118:28;;;;;;;:7;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5118:28:31;;;;;;;;;;;;:::i;:::-;5082:64;;5157:36;5166:7;:14;5191:1;5157:8;:36::i;:::-;5213:7;;:28;;;-1:-1:-1;;;5213:28:31;;;;5204:41;;-1:-1:-1;;;;;5213:7:31;;:26;;:28;;;;;;;;;;;;;;:7;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5243:1;5204:8;:41::i;:::-;5297:3;;5325:7;;5297:3;5343;5297:61;;-1:-1:-1;;;5297:61:31;;-1:-1:-1;;;;;5297:3:31;;;;:19;;:61;;5325:7;;;;5343:3;;;5349:8;;5297:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5290:69;;;;:::i;:::-;5411:7;;;5437:3;5411:31;;-1:-1:-1;;;5411:31:31;;-1:-1:-1;;;;;5437:3:31;;;5411:31;;;2636:51:32;5402:52:31;;5411:7;;;;;:17;;2609:18:32;;5411:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5449:4;5402:8;:52::i;:::-;5475:7;;;;;;;;;-1:-1:-1;;;;;5475:7:31;-1:-1:-1;;;;;5475:26:31;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5475:28:31;;;;;;;;;;;;:::i;:::-;5465:38;;5514:37;5523:7;:14;5549:1;5514:8;:37::i;:::-;5562:48;5571:7;5579:1;5571:10;;;;;;;;:::i;:::-;;;;;;;;;;;:18;5605:3;;-1:-1:-1;;;;;5605:3:31;5562:8;:48::i;:::-;5621:44;5630:7;5638:1;5630:10;;;;;;;;:::i;:::-;;;;;;;:23;;;5656:8;5621;:44::i;:::-;5676:37;5685:7;5693:1;5685:10;;;;;;;;:::i;:::-;;;;;;;:24;;;5711:1;5676:8;:37::i;:::-;5735:7;;:28;;;-1:-1:-1;;;5735:28:31;;;;5726:48;;-1:-1:-1;;;;;5735:7:31;;:26;;:28;;;;;;;;;;;;;;:7;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5765:8;5726;:48::i;:::-;4978:804;4921:861::o;7044:881::-;7176:3;;7204:7;;7176:3;7222;7176:61;;-1:-1:-1;;;7176:61:31;;-1:-1:-1;;;;;7176:3:31;;;;:19;;:61;;7204:7;;;;7222:3;;;7228:8;;7176:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7169:69;;;;:::i;:::-;7289:7;;;7315:3;7289:31;;-1:-1:-1;;;7289:31:31;;-1:-1:-1;;;;;7315:3:31;;;7289:31;;;2636:51:32;7280:52:31;;7289:7;;;;;:17;;2609:18:32;;7289:31:31;2490:203:32;7280:52:31;7379:7;;:28;;;-1:-1:-1;;;7379:28:31;;;;7343:33;;-1:-1:-1;;;;;7379:7:31;;:26;;:28;;;;;7343:33;;7379:28;;;;;;;:7;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7379:28:31;;;;;;;;;;;;:::i;:::-;7343:64;;7418:36;7427:7;:14;7452:1;7418:8;:36::i;:::-;7465:48;7474:7;7482:1;7474:10;;;;;;;;:::i;7465:48::-;7524:44;7533:7;7541:1;7533:10;;;;;;;;:::i;7524:44::-;7579:37;7588:7;7596:1;7588:10;;;;;;;;:::i;7579:37::-;7670:3;;7701:7;;7670:3;7719;7670:54;;-1:-1:-1;;;7670:54:31;;-1:-1:-1;;;;;7670:3:31;;;;:22;;:54;;7701:7;;;;7719:3;;;7670:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7663:62;;;;:::i;:::-;7777:7;;;7803:3;7777:31;;-1:-1:-1;;;7777:31:31;;-1:-1:-1;;;;;7803:3:31;;;7777:31;;;2636:51:32;7768:53:31;;7777:7;;;;;:17;;2609:18:32;;7777:31:31;2490:203:32;7768:53:31;7842:7;;;;;;;;;-1:-1:-1;;;;;7842:7:31;-1:-1:-1;;;;;7842:26:31;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7842:28:31;;;;;;;;;;;;:::i;:::-;7832:38;;7881:36;7890:7;:14;7915:1;7881:8;:36::i;4740:583:30:-;4829:12;4852:4;4845;:11;:39;;4873:11;4880:4;4873;:11;:::i;:::-;4845:39;;;4859:11;4866:4;4859;:11;:::i;:::-;4829:55;;4899:4;4907:1;4899:9;4895:22;;4910:7;4740:583;;;:::o;4895:22::-;4929:19;4951:9;;:23;;4970:4;4951:23;;;4963:4;4951:23;4929:45;-1:-1:-1;4985:10:30;5036:14;5042:8;5036:2;:14;:::i;:::-;5030:20;;2539:8;5030:20;:::i;:::-;5014:11;5000:10;2539:8;5000:4;:10;:::i;:::-;4999:26;;;;:::i;:::-;4998:53;4985:66;;5069:5;5064:252;;5095:80;;;8328:21:32;;;8385:2;8365:18;;;8358:30;8424:34;8419:2;8404:18;;8397:62;-1:-1:-1;;;8490:3:32;8475:19;;8468:51;8586:4;8571:20;;8564:36;;;5095:80:30;;-1:-1:-1;;;;;;;;;;;5095:80:30;;;;8551:3:32;5095:80:30;;;-1:-1:-1;;;;;;;;;;;5224:4:30;5195:34;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5278:4:30;5249:34;;;;;;:::i;:::-;;;;;;;;5298:6;:4;:6::i;:::-;4818:505;;;4740:583;;;:::o;5374:479::-;5462:18;5490:4;5483;:11;:39;;5511:11;5518:4;5511;:11;:::i;:::-;5483:39;;;5497:11;5504:4;5497;:11;:::i;:::-;5462:60;-1:-1:-1;5546:26:30;;;;;5585:261;;5617:88;;;9857:21:32;;;9914:2;9894:18;;;9887:30;9953:34;9948:2;9933:18;;9926:62;10025:26;10019:3;10004:19;;9997:55;10119:4;10104:20;;10097:36;;;5617:88:30;;-1:-1:-1;;;;;;;;;;;5617:88:30;;;;10084:3:32;5617:88:30;;;-1:-1:-1;;;;;;;;;;;5754:4:30;5725:34;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5808:4:30;5779:34;;;;;;:::i;:::-;;;;;;;;5828:6;:4;:6::i;:::-;5451:402;;5374:479;;;:::o;523:207:31:-;585:7;;:20;;;-1:-1:-1;;;585:20:31;;;;576:42;;-1:-1:-1;;;;;585:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1136:42:30;576:8:31;:42::i;:::-;638:7;;:26;;;-1:-1:-1;;;638:26:31;;;;629:39;;-1:-1:-1;;;;;638:7:31;;:24;;:26;;;;;;;;;;;;;;:7;:26;;;;;;;;;;;;;;629:39;688:7;;:24;;;-1:-1:-1;;;688:24:31;;;;679:43;;-1:-1:-1;;;;;688:7:31;;:22;;:24;;;;;;;;;;;;;;:7;:24;;;;;;;;;;;;;;679:43;523:207::o;10097:627::-;10208:3;;10236:7;;10254:3;;10208:61;;-1:-1:-1;;;10208:61:31;;-1:-1:-1;;;;;10208:3:31;;;;:19;;:61;;10236:7;;;;10254:3;;;10260:8;;10208:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10201:69;;;;:::i;:::-;10361:7;;10394:3;;10361:38;;-1:-1:-1;;;10361:38:31;;-1:-1:-1;;;;;10394:3:31;;;10361:38;;;2636:51:32;10352::31;;10361:7;;;;;:24;;2609:18:32;;10361:38:31;;;;;;;;;;;;;;;;;;;;;;;10352:51;10443:3;;10473:7;;10443:39;;-1:-1:-1;;;10443:39:31;;-1:-1:-1;;;;;10473:7:31;;;10443:39;;;2636:51:32;10443:3:31;;;:21;;2609:18:32;;10443:39:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10572:7:31;;;10605:3;10572:38;;-1:-1:-1;;;10572:38:31;;-1:-1:-1;;;;;10605:3:31;;;10572:38;;;2636:51:32;10563::31;;10572:7;;;;;:24;;2609:18:32;;10572:38:31;2490:203:32;10563:51:31;10676:7;;:36;;-1:-1:-1;;;10676:36:31;;:7;:36;;;2636:51:32;10667:49:31;;-1:-1:-1;;;;;10676:7:31;;:24;;2609:18:32;;10676:36:31;2490:203:32;1481:443:31;1589:7;;:26;;;-1:-1:-1;;;1589:26:31;;;;1580:39;;-1:-1:-1;;;;;1589:7:31;;:24;;:26;;;;;;;;;;;;;;:7;:26;;;;;;;;;;;;;;1580:39;1639:7;;:24;;;-1:-1:-1;;;1639:24:31;;;;1630:43;;-1:-1:-1;;;;;1639:7:31;;:22;;:24;;;;;;;;;;;;;;:7;:24;;;;;;;;;;;;;;1630:43;1727:3;;1757:7;;1727:39;;-1:-1:-1;;;1727:39:31;;-1:-1:-1;;;;;1757:7:31;;;1727:39;;;2636:51:32;1727:3:31;;;:21;;2609:18:32;;1727:39:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1720:47;;;;:::i;:::-;1819:7;;:26;;;-1:-1:-1;;;1819:26:31;;;;1810:53;;-1:-1:-1;;;;;1819:7:31;;:24;;:26;;;;;;;;;;;;;;:7;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1847:15;1810:8;:53::i;:::-;1883:7;;:24;;;-1:-1:-1;;;1883:24:31;;;;1874:42;;-1:-1:-1;;;;;1883:7:31;;:22;;:24;;;;;;;;;;;;;;:7;:24;;;;;;;;;;;;;;13092:1902;13261:7;;:20;;;-1:-1:-1;;;13261:20:31;;;;13169:15;;13256:53;;-1:-1:-1;;;;;13261:7:31;;;;:18;;:20;;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13291:7;;-1:-1:-1;;;;;13291:7:31;13301;13256:4;:53::i;:::-;13378:3;;13356:27;;-1:-1:-1;;;13356:27:31;;-1:-1:-1;;;;;13378:3:31;;;13356:27;;;2636:51:32;-1:-1:-1;;;;;;;;;;;13356:13:31;;;2609:18:32;;13356:27:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13434:3:31;;13462:7;;13480:3;;13434:60;;-1:-1:-1;;;13434:60:31;;-1:-1:-1;;;;;13434:3:31;;;;-1:-1:-1;13434:19:31;;-1:-1:-1;13434:60:31;;13462:7;;;;13480:3;;;;13486:7;;13434:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13427:68;;;;:::i;:::-;13541:3;;13571:7;;13541:39;;-1:-1:-1;;;13541:39:31;;-1:-1:-1;;;;;13571:7:31;;;13541:39;;;2636:51:32;13541:3:31;;;:21;;2609:18:32;;13541:39:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13534:47;;;;:::i;:::-;13638:7;;:20;;;-1:-1:-1;;;13638:20:31;;;;13622:65;;-1:-1:-1;;;;;13638:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13678:3;;13631:52;;-1:-1:-1;;;13631:52:31;;-1:-1:-1;;;;;13678:3:31;;;13631:52;;;2636:51:32;13631:38:31;;;;;2609:18:32;;13631:52:31;2490:203:32;13622:65:31;13746:3;;13768:7;;13746:31;;-1:-1:-1;;;13746:31:31;;-1:-1:-1;;;;;13768:7:31;;;13746:31;;;2636:51:32;13746:3:31;;;:13;;2609:18:32;;13746:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13739:39;;;;:::i;:::-;13836:7;;:20;;;-1:-1:-1;;;13836:20:31;;;;13820:82;;-1:-1:-1;;;;;13836:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13876:3;;13829:52;;-1:-1:-1;;;13829:52:31;;-1:-1:-1;;;;;13876:3:31;;;13829:52;;;2636:51:32;13829:38:31;;;;;2609:18:32;;13829:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13898:3;13883:12;:7;13893:2;13883:12;:::i;:::-;:18;;;;:::i;:::-;13820:8;:82::i;:::-;13940:13;13945:7;13940:4;:13::i;:::-;14012:3;;14034:7;;14012:31;;-1:-1:-1;;;14012:31:31;;-1:-1:-1;;;;;14034:7:31;;;14012:31;;;2636:51:32;14012:3:31;;;:13;;2609:18:32;;14012:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14005:39;;;;:::i;:::-;14102:7;;:20;;;-1:-1:-1;;;14102:20:31;;;;14086:82;;-1:-1:-1;;;;;14102:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14142:3;;14095:52;;-1:-1:-1;;;14095:52:31;;-1:-1:-1;;;;;14142:3:31;;;14095:52;;;2636:51:32;14095:38:31;;;;;2609:18:32;;14095:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14164:3;14149:12;:7;14159:2;14149:12;:::i;14086:82::-;14206:13;14211:7;14206:4;:13::i;:::-;14278:3;;14300:7;;14278:31;;-1:-1:-1;;;14278:31:31;;-1:-1:-1;;;;;14300:7:31;;;14278:31;;;2636:51:32;14278:3:31;;;:13;;2609:18:32;;14278:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14271:39;;;;:::i;:::-;14368:7;;:20;;;-1:-1:-1;;;14368:20:31;;;;14352:82;;-1:-1:-1;;;;;14368:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14408:3;;14361:52;;-1:-1:-1;;;14361:52:31;;-1:-1:-1;;;;;14408:3:31;;;14361:52;;;2636:51:32;14361:38:31;;;;;2609:18:32;;14361:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14430:3;14415:12;:7;14425:2;14415:12;:::i;14352:82::-;14473:14;14478:8;14473:4;:14::i;:::-;14546:3;;14568:7;;14546:31;;-1:-1:-1;;;14546:31:31;;-1:-1:-1;;;;;14568:7:31;;;14546:31;;;2636:51:32;14546:3:31;;;:13;;2609:18:32;;14546:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14539:39;;;;:::i;:::-;14636:7;;:20;;;-1:-1:-1;;;14636:20:31;;;;14620:82;;-1:-1:-1;;;;;14636:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14676:3;;14629:52;;-1:-1:-1;;;14629:52:31;;-1:-1:-1;;;;;14676:3:31;;;14629:52;;;2636:51:32;14629:38:31;;;;;2609:18:32;;14629:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14698:3;14683:12;:7;14693:2;14683:12;:::i;14620:82::-;14741:14;14746:8;14741:4;:14::i;:::-;14814:3;;14836:7;;14814:31;;-1:-1:-1;;;14814:31:31;;-1:-1:-1;;;;;14836:7:31;;;14814:31;;;2636:51:32;14814:3:31;;;:13;;2609:18:32;;14814:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14807:39;;;;:::i;:::-;14904:7;;:20;;;-1:-1:-1;;;14904:20:31;;;;14888:71;;-1:-1:-1;;;;;14904:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14944:3;;14897:52;;-1:-1:-1;;;14897:52:31;;-1:-1:-1;;;;;14944:3:31;;;14897:52;;;2636:51:32;14897:38:31;;;;;2609:18:32;;14897:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14951:7;14888:8;:71::i;:::-;-1:-1:-1;;;;;;;;;;;309:37:1;;-1:-1:-1;;;;;14972:12:31;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2019:967;2155:3;;2185:7;;2155:45;;-1:-1:-1;;;2155:45:31;;-1:-1:-1;;;;;2155:3:31;;;;:21;;:45;;2185:7;;;840:42:30;;2155:45:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2154:46;2147:54;;;;:::i;:::-;2281:3;;2311:7;;2281:45;;-1:-1:-1;;;2281:45:31;;-1:-1:-1;;;;;2281:3:31;;;;:21;;:45;;2311:7;;;840:42:30;;2281:45:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2280:46;2273:54;;;;:::i;:::-;2412:3;;2442:7;;2412:45;;-1:-1:-1;;;2412:45:31;;-1:-1:-1;;;;;2412:3:31;;;;:21;;:45;;2442:7;;;840:42:30;;2412:45:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2411:46;2404:54;;;;:::i;:::-;2539:3;;2569:7;;2579:20;;;-1:-1:-1;;;2579:20:31;;;;-1:-1:-1;;;;;2539:3:31;;;;:21;;2569:7;;;;2579:18;;:20;;;;;;;;;;;;;;;2569:7;2579:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2539:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2538:62;2531:70;;;;:::i;:::-;2680:3;;2710:7;;2680:51;;-1:-1:-1;;;2680:51:31;;-1:-1:-1;;;;;2680:3:31;;;;:21;;:51;;2710:7;;;2680:3;;:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2679:52;2672:60;;;;:::i;:::-;2814:7;;2795:39;;840:42:30;;-1:-1:-1;;;;;2814:7:31;2824:9;2371:7:30;2824:3:31;:9;:::i;:::-;2795:4;:39::i;:::-;2932:3;;2962:7;;2932:45;;-1:-1:-1;;;2932:45:31;;-1:-1:-1;;;;;2932:3:31;;;;:21;;:45;;2962:7;;;840:42:30;;2932:45:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2925:53;;;;:::i;5880:1102::-;6011:3;;6039:7;;6011:3;6057;6011:61;;-1:-1:-1;;;6011:61:31;;-1:-1:-1;;;;;6011:3:31;;;;:19;;:61;;6039:7;;;;6057:3;;;6063:8;;6011:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6004:69;;;;:::i;:::-;6164:3;;6195:7;;6164:3;6213;6164:54;;-1:-1:-1;;;6164:54:31;;-1:-1:-1;;;;;6164:3:31;;;;:22;;:54;;6195:7;;;;6213:3;;;6164:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6163:55;6156:63;;;;:::i;:::-;6309:3;;6340:7;;6309:54;;-1:-1:-1;;;6309:54:31;;-1:-1:-1;;;;;6309:3:31;;;;:22;;:54;;6340:7;;;6309:3;;:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6308:55;6301:63;;;;:::i;:::-;6440:3;;6471:7;;6440:3;6489;6440:54;;-1:-1:-1;;;6440:54:31;;-1:-1:-1;;;;;6440:3:31;;;;:22;;:54;;6471:7;;;;6489:3;;;6440:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6433:62;;;;:::i;:::-;6530:3;;6508:27;;-1:-1:-1;;;6508:27:31;;-1:-1:-1;;;;;6530:3:31;;;6508:27;;;2636:51:32;-1:-1:-1;;;;;;;;;;;6508:13:31;;;2609:18:32;;6508:27:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6627:75:31;;-1:-1:-1;;;6627:75:31;;11388:2:32;6627:75:31;;;11370:21:32;11427:2;11407:18;;;11400:30;11466:34;11446:18;;;11439:62;11537:26;11517:18;;;11510:54;-1:-1:-1;;;;;;;;;;;6627:15:31;-1:-1:-1;6627:15:31;;-1:-1:-1;11581:19:32;;6627:75:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6713:7:31;;6744:3;;6713:36;;-1:-1:-1;;;6713:36:31;;-1:-1:-1;;;;;6744:3:31;;;6713:36;;;2636:51:32;6713:7:31;;;-1:-1:-1;6713:22:31;;-1:-1:-1;2609:18:32;;6713:36:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6825:77:31;;-1:-1:-1;;;6825:77:31;;11812:2:32;6825:77:31;;;11794:21:32;11851:2;11831:18;;;11824:30;11890:34;11870:18;;;11863:62;11961:28;11941:18;;;11934:56;-1:-1:-1;;;;;;;;;;;6825:15:31;-1:-1:-1;6825:15:31;;-1:-1:-1;12007:19:32;;6825:77:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6913:7:31;;:34;;-1:-1:-1;;;6913:34:31;;:7;:34;;;2636:51:32;-1:-1:-1;;;;;6913:7:31;;;;-1:-1:-1;6913:22:31;;-1:-1:-1;2609:18:32;;6913:34:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;309:37:1;;-1:-1:-1;;;;;6960:12:31;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5880:1102::o;6028:291:30:-;6128:7;6157:8;;:20;;;;;6170:7;6169:8;6157:20;6148:163;;;-1:-1:-1;6186:1:30;6179:8;;6148:163;6214:3;6207;:10;6203:108;;-1:-1:-1;6236:3:30;6229:10;;6203:108;6308:3;6295:9;6308:3;6295;:9;:::i;:::-;6288:17;;:3;:17;:::i;:::-;:23;;;;:::i;:::-;6281:30;;6203:108;6028:291;;;;;;:::o;4221:461::-;4299:12;4314:14;;;:6;:14;;;;;;;;:19;;;4360;;;;4404:31;;-1:-1:-1;;;4404:31:30;;-1:-1:-1;;;;;2654:32:32;;;4404:31:30;;;2636:51:32;;;;4314:19:30;;;4360;;4314;;4404:22;;2609:18:32;;4404:31:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4448:4;;4502:25;;4390:45;;-1:-1:-1;4448:4:30;;;-1:-1:-1;;;;;4448:4:30;;:10;;4473:4;;4502:25;;4513:7;;4522:4;;4502:25;;;:::i;:::-;;;;;;;;;;;;;4492:36;;;;;;4572:3;4566;:9;;;;:::i;:::-;4448:139;;-1:-1:-1;;;;;;4448:139:30;;;;;;;;;;;4558:18;4448:139;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4609:31:30;;-1:-1:-1;;;4609:31:30;;-1:-1:-1;;;;;2654:32:32;;;4609:31:30;;;2636:51:32;4600:52:30;;-1:-1:-1;4609:22:30;;;-1:-1:-1;4609:22:30;;2609:18:32;;4609:31:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4642:9;4648:3;4642;:9;:::i;11947:1092:31:-;12072:7;;:20;;;-1:-1:-1;;;12072:20:31;;;;12067:61;;-1:-1:-1;;;;;12072:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12102:7;;-1:-1:-1;;;;;12102:7:31;12112:15;12067:4;:61::i;:::-;12198:3;;12176:27;;-1:-1:-1;;;12176:27:31;;-1:-1:-1;;;;;12198:3:31;;;12176:27;;;2636:51:32;-1:-1:-1;;;;;;;;;;;12176:13:31;;;2609:18:32;;12176:27:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12269:77:31;;-1:-1:-1;;;12269:77:31;;13114:2:32;12269:77:31;;;13096:21:32;13153:2;13133:18;;;13126:30;13192:34;13172:18;;;13165:62;13263:28;13243:18;;;13236:56;-1:-1:-1;;;;;;;;;;;12269:15:31;-1:-1:-1;12269:15:31;;-1:-1:-1;13309:19:32;;12269:77:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12357:7;;;;;;;;;-1:-1:-1;;;;;12357:7:31;-1:-1:-1;;;;;12357:13:31;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12424:3:31;;12452:7;;12470:3;;12424:68;;-1:-1:-1;;;12424:68:31;;-1:-1:-1;;;;;12424:3:31;;;;-1:-1:-1;12424:19:31;;-1:-1:-1;12424:68:31;;12452:7;;;;12470:3;;;;12476:15;;12424:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12417:76;;;;:::i;:::-;12559:62;;-1:-1:-1;;;12559:62:31;;13952:2:32;12559:62:31;;;13934:21:32;13991:2;13971:18;;;13964:30;14030:34;14010:18;;;14003:62;-1:-1:-1;;;14081:18:32;;;14074:41;-1:-1:-1;;;;;;;;;;;12559:15:31;;;14132:19:32;;12559:62:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12632:7;;;;;;;;;-1:-1:-1;;;;;12632:7:31;-1:-1:-1;;;;;12632:13:31;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12694:3:31;;12724:7;;12694:39;;-1:-1:-1;;;12694:39:31;;-1:-1:-1;;;;;12724:7:31;;;12694:39;;;2636:51:32;12694:3:31;;;-1:-1:-1;12694:21:31;;-1:-1:-1;2609:18:32;;12694:39:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12687:47;;;;:::i;:::-;12784:7;;;;;;;;;-1:-1:-1;;;;;12784:7:31;-1:-1:-1;;;;;12784:13:31;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12812:14;12817:8;12812:4;:14::i;:::-;12877:7;;;;;;;;;-1:-1:-1;;;;;12877:7:31;-1:-1:-1;;;;;12877:13:31;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12905:71:31;;-1:-1:-1;;;12905:71:31;;14363:2:32;12905:71:31;;;14345:21:32;14402:2;14382:18;;;14375:30;14441:34;14421:18;;;14414:62;-1:-1:-1;;;14492:18:32;;;14485:50;-1:-1:-1;;;;;;;;;;;12905:15:31;-1:-1:-1;12905:15:31;;-1:-1:-1;14552:19:32;;12905:71:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12987:7;;;;;;;;;-1:-1:-1;;;;;12987:7:31;-1:-1:-1;;;;;12987:13:31;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17163:1984;17245:48;17251:7;17260:13;17275:17;17245:5;:48::i;:::-;17235:58;;17365:53;17370:7;;;;;;;;;-1:-1:-1;;;;;17370:7:31;-1:-1:-1;;;;;17370:18:31;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17365:53;17487:3;;17465:27;;-1:-1:-1;;;17465:27:31;;-1:-1:-1;;;;;17487:3:31;;;17465:27;;;2636:51:32;-1:-1:-1;;;;;;;;;;;17465:13:31;;;2609:18:32;;17465:27:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17543:3:31;;17571:7;;17589:3;;17543:60;;-1:-1:-1;;;17543:60:31;;-1:-1:-1;;;;;17543:3:31;;;;-1:-1:-1;17543:19:31;;-1:-1:-1;17543:60:31;;17571:7;;;;17589:3;;;;17595:7;;17543:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17536:68;;;;:::i;:::-;17650:3;;17680:7;;17650:39;;-1:-1:-1;;;17650:39:31;;-1:-1:-1;;;;;17680:7:31;;;17650:39;;;2636:51:32;17650:3:31;;;:21;;2609:18:32;;17650:39:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17643:47;;;;:::i;:::-;17747:7;;:20;;;-1:-1:-1;;;17747:20:31;;;;17731:65;;-1:-1:-1;;;;;17747:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;17731:65;17855:3;;17877:7;;17855:31;;-1:-1:-1;;;17855:31:31;;-1:-1:-1;;;;;17877:7:31;;;17855:31;;;2636:51:32;17855:3:31;;;:13;;2609:18:32;;17855:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17848:39;;;;:::i;:::-;17947:7;;:20;;;-1:-1:-1;;;17947:20:31;;;;17929:93;;-1:-1:-1;;;;;17947:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17987:3;;17940:52;;-1:-1:-1;;;17940:52:31;;-1:-1:-1;;;;;17987:3:31;;;17940:52;;;2636:51:32;17940:38:31;;;;;2609:18:32;;17940:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18009:3;17994:12;:7;18004:2;17994:12;:::i;:::-;:18;;;;:::i;:::-;18014:7;17929:10;:93::i;:::-;18060:13;18065:7;18060:4;:13::i;:::-;18132:3;;18154:7;;18132:31;;-1:-1:-1;;;18132:31:31;;-1:-1:-1;;;;;18154:7:31;;;18132:31;;;2636:51:32;18132:3:31;;;:13;;2609:18:32;;18132:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18125:39;;;;:::i;:::-;18224:7;;:20;;;-1:-1:-1;;;18224:20:31;;;;18206:93;;-1:-1:-1;;;;;18224:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18264:3;;18217:52;;-1:-1:-1;;;18217:52:31;;-1:-1:-1;;;;;18264:3:31;;;18217:52;;;2636:51:32;18217:38:31;;;;;2609:18:32;;18217:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18286:3;18271:12;:7;18281:2;18271:12;:::i;18206:93::-;18337:13;18342:7;18337:4;:13::i;:::-;18409:3;;18431:7;;18409:31;;-1:-1:-1;;;18409:31:31;;-1:-1:-1;;;;;18431:7:31;;;18409:31;;;2636:51:32;18409:3:31;;;:13;;2609:18:32;;18409:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18402:39;;;;:::i;:::-;18501:7;;:20;;;-1:-1:-1;;;18501:20:31;;;;18483:93;;-1:-1:-1;;;;;18501:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18541:3;;18494:52;;-1:-1:-1;;;18494:52:31;;-1:-1:-1;;;;;18541:3:31;;;18494:52;;;2636:51:32;18494:38:31;;;;;2609:18:32;;18494:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18563:3;18548:12;:7;18558:2;18548:12;:::i;18483:93::-;18615:14;18620:8;18615:4;:14::i;:::-;18688:3;;18710:7;;18688:31;;-1:-1:-1;;;18688:31:31;;-1:-1:-1;;;;;18710:7:31;;;18688:31;;;2636:51:32;18688:3:31;;;:13;;2609:18:32;;18688:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18681:39;;;;:::i;:::-;18780:7;;:20;;;-1:-1:-1;;;18780:20:31;;;;18762:93;;-1:-1:-1;;;;;18780:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18820:3;;18773:52;;-1:-1:-1;;;18773:52:31;;-1:-1:-1;;;;;18820:3:31;;;18773:52;;;2636:51:32;18773:38:31;;;;;2609:18:32;;18773:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18842:3;18827:12;:7;18837:2;18827:12;:::i;3699:1165::-;3841:3;;3869:7;;3841:3;3887;3841:61;;-1:-1:-1;;;3841:61:31;;-1:-1:-1;;;;;3841:3:31;;;;:19;;:61;;3869:7;;;;3887:3;;;3893:8;;3841:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3840:62;3833:70;;;;:::i;:::-;3990:3;;4018:7;;3990:61;;-1:-1:-1;;;3990:61:31;;-1:-1:-1;;;;;3990:3:31;;;;:19;;:61;;4018:7;;;3990:3;;4042:8;;3990:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3989:62;3982:70;;;;:::i;:::-;4125:3;;4153:7;;4125:3;4171;4125:61;;-1:-1:-1;;;4125:61:31;;-1:-1:-1;;;;;4125:3:31;;;;:19;;:61;;4153:7;;;;4171:3;;;4177:8;;4125:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4118:69;;;;:::i;:::-;4222:3;;4200:27;;-1:-1:-1;;;4200:27:31;;-1:-1:-1;;;;;4222:3:31;;;4200:27;;;2636:51:32;-1:-1:-1;;;;;;;;;;;4200:13:31;;;2609:18:32;;4200:27:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4306:71:31;;-1:-1:-1;;;4306:71:31;;14783:2:32;4306:71:31;;;14765:21:32;14822:2;14802:18;;;14795:30;14861:34;14841:18;;;14834:62;-1:-1:-1;;;14912:18:32;;;14905:50;-1:-1:-1;;;;;;;;;;;4306:15:31;-1:-1:-1;4306:15:31;;-1:-1:-1;14972:19:32;;4306:71:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4388:7:31;;;4416:3;4388:43;;-1:-1:-1;;;4388:43:31;;-1:-1:-1;;;;;4388:7:31;;;;-1:-1:-1;4388:19:31;;-1:-1:-1;4388:43:31;;4416:3;;;;4422:8;;4388:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4508:75:31;;-1:-1:-1;;;4508:75:31;;15509:2:32;4508:75:31;;;15491:21:32;15548:2;15528:18;;;15521:30;15587:34;15567:18;;;15560:62;15658:26;15638:18;;;15631:54;-1:-1:-1;;;;;;;;;;;4508:15:31;-1:-1:-1;4508:15:31;;-1:-1:-1;15702:19:32;;4508:75:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4594:7:31;;:41;;-1:-1:-1;;;4594:41:31;;-1:-1:-1;;;;;4594:7:31;;;;-1:-1:-1;4594:19:31;;-1:-1:-1;4594:41:31;;:7;;4626:8;;4594:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4710:72:31;;-1:-1:-1;;;4710:72:31;;15933:2:32;4710:72:31;;;15915:21:32;15972:2;15952:18;;;15945:30;16011:34;15991:18;;;15984:62;-1:-1:-1;;;16062:18:32;;;16055:51;-1:-1:-1;;;;;;;;;;;4710:15:31;-1:-1:-1;4710:15:31;;-1:-1:-1;16123:19:32;;4710:72:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4793:7:31;;4821:3;;4793:36;;-1:-1:-1;;;4793:36:31;;-1:-1:-1;;;;;4793:7:31;;;;-1:-1:-1;4793:19:31;;-1:-1:-1;4793:36:31;;4821:3;;;;4793:7;;:36;;;:::i;3046:563::-;3135:7;;3116:39;;840:42:30;;-1:-1:-1;;;;;3135:7:31;3145:9;2371:7:30;3145:3:31;:9;:::i;3116:39::-;3236:7;;3205:40;;-1:-1:-1;;;3205:40:31;;-1:-1:-1;;;;;3236:7:31;;;3205:40;;;2636:51:32;3196:61:31;;840:42:30;;3205:22:31;;2609:18:32;;3205:40:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3247:9;2371:7:30;3247:3:31;:9;:::i;3196:61::-;3308:3;;3277:36;;-1:-1:-1;;;3277:36:31;;-1:-1:-1;;;;;3308:3:31;;;3277:36;;;2636:51:32;3268:53:31;;840:42:30;;3277:22:31;;2609:18:32;;3277:36:31;2490:203:32;3268:53:31;3388:3;;3418:7;;3388:45;;-1:-1:-1;;;3388:45:31;;-1:-1:-1;;;;;3388:3:31;;;;:21;;:45;;3418:7;;;840:42:30;;3388:45:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3381:53;;;;:::i;:::-;3516:7;;3485:40;;-1:-1:-1;;;3485:40:31;;-1:-1:-1;;;;;3516:7:31;;;3485:40;;;2636:51:32;3476:53:31;;840:42:30;;3485:22:31;;2609:18:32;;3485:40:31;2490:203:32;3476:53:31;3580:3;;3549:36;;-1:-1:-1;;;3549:36:31;;-1:-1:-1;;;;;3580:3:31;;;3549:36;;;2636:51:32;3540:61:31;;840:42:30;;3549:22:31;;2609:18:32;;3549:36:31;2490:203:32;8020:1974:31;8088:9;8100:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8185:3:31;;8213:7;;8185:3;8231;8185:61;;-1:-1:-1;;;8185:61:31;;8088:23;;-1:-1:-1;;;;;;8185:3:31;;;;:19;;:61;;8213:7;;;8231:3;;8237:8;;8185:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8178:69;;;;:::i;:::-;8265:3;;8293:7;;8311:3;;8265:61;;-1:-1:-1;;;8265:61:31;;-1:-1:-1;;;;;8265:3:31;;;;:19;;:61;;8293:7;;;;8311:3;;;8317:8;;8265:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8258:69;;;;:::i;:::-;8345:3;;8373:7;;8345:61;;-1:-1:-1;;;8345:61:31;;-1:-1:-1;;;;;8345:3:31;;;;:19;;:61;;8373:7;;;8391:3;;8397:8;;8345:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8338:69;;;;:::i;:::-;8458:7;;;8484:3;8458:31;;-1:-1:-1;;;8458:31:31;;-1:-1:-1;;;;;8484:3:31;;;8458:31;;;2636:51:32;8449:52:31;;8458:7;;;;;:17;;2609:18:32;;8458:31:31;2490:203:32;8449:52:31;8521:7;;8547:3;;8521:31;;-1:-1:-1;;;8521:31:31;;-1:-1:-1;;;;;8547:3:31;;;8521:31;;;2636:51:32;8512:52:31;;8521:7;;;;;:17;;2609:18:32;;8521:31:31;2490:203:32;8512:52:31;8584:7;;:31;;-1:-1:-1;;;8584:31:31;;-1:-1:-1;;;;;2654:32:32;;;8584:31:31;;;2636:51:32;8575:52:31;;8584:7;;:17;;2609:18:32;;8584:31:31;2490:203:32;8575:52:31;8674:7;;:28;;;-1:-1:-1;;;8674:28:31;;;;8638:33;;-1:-1:-1;;;;;8674:7:31;;:26;;:28;;;;;8638:33;;8674:28;;;;;;;:7;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8674:28:31;;;;;;;;;;;;:::i;:::-;8638:64;;8713:36;8722:7;:14;8747:1;8713:8;:36::i;:::-;8760:48;8769:7;8777:1;8769:10;;;;;;;;:::i;8760:48::-;8819:44;8828:7;8836:1;8828:10;;;;;;;;:::i;8819:44::-;8874:37;8883:7;8891:1;8883:10;;;;;;;;:::i;8874:37::-;8922:48;8931:7;8939:1;8931:10;;;;;;;;:::i;:::-;;;;;;;;;;;:18;8965:3;;-1:-1:-1;;;;;8965:3:31;8922:8;:48::i;:::-;8981:44;8990:7;8998:1;8990:10;;;;;;;;:::i;:::-;;;;;;;:23;;;9016:8;8981;:44::i;:::-;9036:37;9045:7;9053:1;9045:10;;;;;;;;:::i;9036:37::-;9084:48;9093:7;9101:1;9093:10;;;;;;;;:::i;:::-;;;;;;;:18;;;9127:3;9084:8;:48::i;:::-;9143:44;9152:7;9160:1;9152:10;;;;;;;;:::i;:::-;;;;;;;:23;;;9178:8;9143;:44::i;:::-;9198:37;9207:7;9215:1;9207:10;;;;;;;;:::i;9198:37::-;9289:3;;9320:7;;9289:3;9338;9289:54;;-1:-1:-1;;;9289:54:31;;-1:-1:-1;;;;;9289:3:31;;;;:22;;:54;;9320:7;;;;9338:3;;;9289:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9282:62;;;;:::i;:::-;9396:7;;;9422:3;9396:31;;-1:-1:-1;;;9396:31:31;;-1:-1:-1;;;;;9422:3:31;;;9396:31;;;2636:51:32;9387:53:31;;9396:7;;;;;:17;;2609:18:32;;9396:31:31;2490:203:32;9387:53:31;9460:7;;9486:3;;9460:31;;-1:-1:-1;;;9460:31:31;;-1:-1:-1;;;;;9486:3:31;;;9460:31;;;2636:51:32;9451:52:31;;9460:7;;;;;:17;;2609:18:32;;9460:31:31;2490:203:32;9451:52:31;9523:7;;:31;;-1:-1:-1;;;9523:31:31;;-1:-1:-1;;;;;2654:32:32;;;9523:31:31;;;2636:51:32;9514:52:31;;9523:7;;:17;;2609:18:32;;9523:31:31;2490:203:32;9514:52:31;9587:7;;;;;;;;;-1:-1:-1;;;;;9587:7:31;-1:-1:-1;;;;;9587:26:31;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9587:28:31;;;;;;;;;;;;:::i;:::-;9577:38;;9626:36;9635:7;:14;9660:1;9626:8;:36::i;:::-;9673:48;9682:7;9690:1;9682:10;;;;;;;;:::i;9673:48::-;9732:44;9741:7;9749:1;9741:10;;;;;;;;:::i;9732:44::-;9787:37;9796:7;9804:1;9796:10;;;;;;;;:::i;9787:37::-;9835:48;9844:7;9852:1;9844:10;;;;;;;;:::i;9835:48::-;9894:44;9903:7;9911:1;9903:10;;;;;;;;:::i;9894:44::-;9949:37;9958:7;9966:1;9958:10;;;;;;;;:::i;9949:37::-;8077:1917;;8020:1974::o;3312:184:30:-;3360:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3354:3:30;:17;;-1:-1:-1;;;;;;3354:17:30;-1:-1:-1;;;;;3354:17:30;;;;;;;;;;3401:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3395:3:30;:17;;-1:-1:-1;;;;;;3395:17:30;-1:-1:-1;;;;;3395:17:30;;;;;;;;;;3468:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3462:3:30;:17;;-1:-1:-1;;;;;;3462:17:30;-1:-1:-1;;;;;3462:17:30;;;;;;;;;;3312:184::o;1819:584:0:-;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;-1:-1:-1;;;;;;;;;;;2978:55:0;3059:16;1980:374;;2196:43;;2023:20;;-1:-1:-1;;;;;;;;;;;1671:64:0;2135:34;;2196:43;;1671:64;;-1:-1:-1;;;2221:17:0;2196:43;;;:::i;:::-;;;;-1:-1:-1;;2196:43:0;;;;;;;;;;2086:175;;;2196:43;2086:175;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;5861:159:30:-;5947:7;5974:38;5991:3;5996;6001;6006:5;5974:16;:38::i;:::-;5967:45;;5861:159;;;;;;:::o;19211:2093:31:-;19293:48;19299:7;19308:13;19323:17;19293:5;:48::i;:::-;19283:58;;19413:57;19418:7;;;;;;;;;-1:-1:-1;;;;;19418:7:31;-1:-1:-1;;;;;19418:18:31;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19448:7;;-1:-1:-1;;;;;19448:7:31;19458:11;:7;19468:1;19458:11;:::i;19413:57::-;19516:3;;19546:7;;19516:39;;-1:-1:-1;;;19516:39:31;;-1:-1:-1;;;;;19546:7:31;;;19516:39;;;2636:51:32;19516:3:31;;;:21;;2609:18:32;;19516:39:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19509:47;;;;:::i;:::-;19665:3;;19693:7;;19711:3;;19665:60;;-1:-1:-1;;;19665:60:31;;-1:-1:-1;;;;;19665:3:31;;;;:19;;:60;;19693:7;;;;19711:3;;;19717:7;;19665:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19658:68;;;;:::i;:::-;19778:3;;19806:7;;19778:3;19824;19778:60;;-1:-1:-1;;;19778:60:31;;-1:-1:-1;;;;;19778:3:31;;;;:19;;:60;;19806:7;;;;19824:3;;;19830:7;;19778:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19771:68;;;;:::i;:::-;19891:3;;19919:7;;19891:60;;-1:-1:-1;;;19891:60:31;;-1:-1:-1;;;;;19891:3:31;;;;:19;;:60;;19919:7;;;19891:3;;19943:7;;19891:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19884:68;;;;:::i;:::-;20027:13;20032:7;20027:4;:13::i;:::-;20058:3;;20080:7;;20058:31;;-1:-1:-1;;;20058:31:31;;-1:-1:-1;;;;;20080:7:31;;;20058:31;;;2636:51:32;20058:3:31;;;:13;;2609:18:32;;20058:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20051:39;;;;:::i;:::-;20185:7;;:20;;;-1:-1:-1;;;20185:20:31;;;;20167:95;;-1:-1:-1;;;;;20185:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;20167:95;20327:14;20332:8;20327:4;:14::i;:::-;20413:3;;20435:7;;20413:31;;-1:-1:-1;;;20413:31:31;;-1:-1:-1;;;;;20435:7:31;;;20413:31;;;2636:51:32;20413:3:31;;;:13;;2609:18:32;;20413:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20406:39;;;;:::i;:::-;20540:7;;:20;;;-1:-1:-1;;;20540:20:31;;;;20522:95;;-1:-1:-1;;;;;20540:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20580:3;;20533:52;;-1:-1:-1;;;20533:52:31;;-1:-1:-1;;;;;20580:3:31;;;20533:52;;;2636:51:32;20533:38:31;;;;;2609:18:32;;20533:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20603:3;20588:12;:7;20598:2;20588:12;:::i;20522:95::-;20683:14;20688:8;20683:4;:14::i;:::-;20795:3;;20817:7;;20795:31;;-1:-1:-1;;;20795:31:31;;-1:-1:-1;;;;;20817:7:31;;;20795:31;;;2636:51:32;20795:3:31;;;:13;;2609:18:32;;20795:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20788:39;;;;:::i;:::-;20909:7;;:20;;;-1:-1:-1;;;20909:20:31;;;;20893:71;;-1:-1:-1;;;;;20909:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20949:3;;20902:52;;-1:-1:-1;;;20902:52:31;;-1:-1:-1;;;;;20949:3:31;;;20902:52;;;2636:51:32;20902:38:31;;;;;2609:18:32;;20902:52:31;2490:203:32;20893:71:31;21009:14;21014:8;21009:4;:14::i;:::-;21117:3;;21139:7;;21117:31;;-1:-1:-1;;;21117:31:31;;-1:-1:-1;;;;;21139:7:31;;;21117:31;;;2636:51:32;21117:3:31;;;:13;;2609:18:32;;21117:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21110:39;;;;:::i;:::-;21239:7;;:20;;;-1:-1:-1;;;21239:20:31;;;;21223:71;;-1:-1:-1;;;;;21239:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21279:3;;21232:52;;-1:-1:-1;;;21232:52:31;;-1:-1:-1;;;;;21279:3:31;;;21232:52;;;2636:51:32;21232:38:31;;;;;2609:18:32;;21232:52:31;2490:203:32;10774:1093:31;10981:3;;11009:7;;11027:3;;10981:60;;-1:-1:-1;;;10981:60:31;;10917:15;;-1:-1:-1;;;;;10981:3:31;;;;:19;;:60;;11009:7;;;;11027:3;;10917:15;;10981:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10974:68;;;;:::i;:::-;11107:7;;11139:3;;11107:37;;-1:-1:-1;;;11107:37:31;;-1:-1:-1;;;;;11139:3:31;;;11107:37;;;2636:51:32;11098:56:31;;11107:7;;;;;:23;;2609:18:32;;11107:37:31;2490:203:32;11098:56:31;11201:3;;11231:7;;11201:39;;-1:-1:-1;;;11201:39:31;;-1:-1:-1;;;;;11231:7:31;;;11201:39;;;2636:51:32;11201:3:31;;;:21;;2609:18:32;;11201:39:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11194:47;;;;:::i;:::-;11280:14;11285:8;11280:4;:14::i;:::-;11360:15;11421:3;11407:11;:7;11417:1;11407:11;:::i;:::-;:17;;;;:::i;:::-;11402:23;;:1;:23;:::i;:::-;11394:3;11379:12;:7;11389:2;11379:12;:::i;:::-;:18;;;;:::i;:::-;11378:48;;;;:::i;:::-;11446:7;;11479:3;;11446:38;;-1:-1:-1;;;11446:38:31;;-1:-1:-1;;;;;11479:3:31;;;11446:38;;;2636:51:32;11360:66:31;;-1:-1:-1;11437:57:31;;11446:7;;;:24;;2609:18:32;;11446:38:31;2490:203:32;11437:57:31;11583:14;11588:8;11583:4;:14::i;:::-;11718:3;11704:11;:7;11714:1;11704:11;:::i;:::-;:17;;;;:::i;:::-;11698:24;;:2;:24;:::i;:::-;11690:3;11675:12;:7;11685:2;11675:12;:::i;:::-;:18;;;;:::i;:::-;11674:49;;;;:::i;:::-;11743:7;;11776:3;;11743:38;;-1:-1:-1;;;11743:38:31;;-1:-1:-1;;;;;11776:3:31;;;11743:38;;;2636:51:32;11664:59:31;;-1:-1:-1;11734:57:31;;11743:7;;;:24;;2609:18:32;;11743:38:31;2490:203:32;11734:57:31;11811:7;;11844:3;;11811:38;;-1:-1:-1;;;11811:38:31;;-1:-1:-1;;;;;11844:3:31;;;11811:38;;;2636:51:32;11802:57:31;;11811:7;;;;;:24;;2609:18:32;;11811:38:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11851:7;11802:8;:57::i;15044:2052::-;15167:7;;:20;;;-1:-1:-1;;;15167:20:31;;;;15162:61;;-1:-1:-1;;;;;15167:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;15162:61;15269:3;;15299:7;;15269:39;;-1:-1:-1;;;15269:39:31;;-1:-1:-1;;;;;15299:7:31;;;15269:39;;;2636:51:32;15269:3:31;;;:21;;2609:18:32;;15269:39:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15262:47;;;;:::i;:::-;15418:3;;15446:7;;15464:3;;15418:68;;-1:-1:-1;;;15418:68:31;;-1:-1:-1;;;;;15418:3:31;;;;:19;;:68;;15446:7;;;;15464:3;;;15470:15;;15418:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15411:76;;;;:::i;:::-;15539:3;;15567:7;;15539:3;15585;15539:68;;-1:-1:-1;;;15539:68:31;;-1:-1:-1;;;;;15539:3:31;;;;:19;;:68;;15567:7;;;;15585:3;;;15591:15;;15539:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15532:76;;;;:::i;:::-;15660:3;;15688:7;;15660:68;;-1:-1:-1;;;15660:68:31;;-1:-1:-1;;;;;15660:3:31;;;;:19;;:68;;15688:7;;;15660:3;;15712:15;;15660:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15653:76;;;;:::i;:::-;15804:13;15809:7;15804:4;:13::i;:::-;15835:3;;15857:7;;15835:31;;-1:-1:-1;;;15835:31:31;;-1:-1:-1;;;;;15857:7:31;;;15835:31;;;2636:51:32;15835:3:31;;;:13;;2609:18:32;;15835:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15828:39;;;;:::i;:::-;15960:7;;:20;;;-1:-1:-1;;;15960:20:31;;;;15944:93;;-1:-1:-1;;;;;15960:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16000:3;;15953:52;;-1:-1:-1;;;15953:52:31;;-1:-1:-1;;;;;16000:3:31;;;15953:52;;;2636:51:32;15953:38:31;;;;;2609:18:32;;15953:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16008:26;15944:8;:93::i;:::-;16102:14;16107:8;16102:4;:14::i;:::-;16188:3;;16210:7;;16188:31;;-1:-1:-1;;;16188:31:31;;-1:-1:-1;;;;;16210:7:31;;;16188:31;;;2636:51:32;16188:3:31;;;:13;;2609:18:32;;16188:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16181:39;;;;:::i;:::-;16313:7;;:20;;;-1:-1:-1;;;16313:20:31;;;;16297:92;;-1:-1:-1;;;;;16313:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16353:3;;16306:52;;-1:-1:-1;;;16306:52:31;;-1:-1:-1;;;;;16353:3:31;;;16306:52;;;2636:51:32;16306:38:31;;;;;2609:18:32;;16306:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16361:26;16297:8;:92::i;:::-;16455:14;16460:8;16455:4;:14::i;:::-;16567:3;;16589:7;;16567:31;;-1:-1:-1;;;16567:31:31;;-1:-1:-1;;;;;16589:7:31;;;16567:31;;;2636:51:32;16567:3:31;;;:13;;2609:18:32;;16567:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16560:39;;;;:::i;:::-;16681:7;;:20;;;-1:-1:-1;;;16681:20:31;;;;16665:81;;-1:-1:-1;;;;;16681:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16721:3;;16674:52;;-1:-1:-1;;;16674:52:31;;-1:-1:-1;;;;;16721:3:31;;;16674:52;;;2636:51:32;16674:38:31;;;;;2609:18:32;;16674:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16729:15;16665:8;:81::i;:::-;16791:14;16796:8;16791:4;:14::i;:::-;16899:3;;16921:7;;16899:31;;-1:-1:-1;;;16899:31:31;;-1:-1:-1;;;;;16921:7:31;;;16899:31;;;2636:51:32;16899:3:31;;;:13;;2609:18:32;;16899:31:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16892:39;;;;:::i;:::-;17021:7;;:20;;;-1:-1:-1;;;17021:20:31;;;;17005:81;;-1:-1:-1;;;;;17021:7:31;;:18;;:20;;;;;;;;;;;;;;:7;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17061:3;;17014:52;;-1:-1:-1;;;17014:52:31;;-1:-1:-1;;;;;17061:3:31;;;17014:52;;;2636:51:32;17014:38:31;;;;;2609:18:32;;17014:52:31;2490:203:32;3620:551:30;3663:6;:14;;;:26;;-1:-1:-1;;;;;;3663:26:30;;;840:42;3663:26;;;;3722:1;3700:19;:23;3736:13;:24;;;;914:42;3736:24;;;3792:1;3771:18;:22;3804:18;:63;;;;3825:42;3804:63;;;3880:14;:26;;;;988:42;3880:26;;;3939:1;3917:19;:23;3951:19;:64;;;;3973:42;3951:64;;;-1:-1:-1;;;3663:14:30;4028;;;;:26;;;;1062:42;4028:26;;;4065:19;:23;4099:19;:64;;;;;4121:42;4099:64;;;3620:551::o;825:596:31:-;961:3;;991:7;;961:39;;-1:-1:-1;;;961:39:31;;-1:-1:-1;;;;;991:7:31;;;961:39;;;2636:51:32;961:3:31;;;:21;;2609:18:32;;961:39:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;960:40;953:48;;;;:::i;:::-;1081:3;;1111:7;;1081:39;;-1:-1:-1;;;1081:39:31;;-1:-1:-1;;;;;1111:7:31;;;1081:39;;;2636:51:32;1081:3:31;;;:21;;2609:18:32;;1081:39:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1080:40;1073:48;;;;:::i;:::-;1216:3;;1246:7;;1216:39;;-1:-1:-1;;;1216:39:31;;-1:-1:-1;;;;;1246:7:31;;;1216:39;;;2636:51:32;1216:3:31;;;:21;;2609:18:32;;1216:39:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1209:47;;;;:::i;:::-;1373:3;;1403:7;;1373:39;;-1:-1:-1;;;1373:39:31;;-1:-1:-1;;;;;1403:7:31;;;1373:39;;;2636:51:32;1373:3:31;;;:21;;2609:18:32;;1373:39:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1372:40;1365:48;;;;:::i;789:312:3:-;859:1;854:6;;:1;:6;;;850:245;;881:41;;;;;18264:2:32;18246:21;;;18303:2;18283:18;;;18276:30;18342:34;18337:2;18322:18;;18315:62;-1:-1:-1;;;18408:2:32;18393:18;;18386:32;18450:3;18435:19;;18062:398;881:41:3;;;;;;;;941:52;972:1;:20;;;;;;;;;;;;;;;-1:-1:-1;;;972:20:3;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;972:20:3;;;;941:52;;;;;;:::i;:::-;;;;;;;;1012;1043:1;:20;;;;;;;;;;;;;;;-1:-1:-1;;;1043:20:3;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1043:20:3;;;;1012:52;;;;;;:::i;:::-;;;;;;;;1078:6;:4;:6::i;5202:262:0:-;5264:1;5259;:6;5255:203;;5286:41;;;;;19833:2:32;19815:21;;;19872:2;19852:18;;;19845:30;19911:34;19906:2;19891:18;;19884:62;-1:-1:-1;;;19977:2:32;19962:18;;19955:32;20019:3;20004:19;;19631:398;5286:41:0;;;;;;;;-1:-1:-1;;;;;;;;;;;5375:1:0;5346:31;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5425:1:0;5396:31;;;;;;:::i;3615:277::-;3683:1;-1:-1:-1;;;;;3678:6:0;:1;-1:-1:-1;;;;;3678:6:0;;3674:212;;3705:44;;;;;20236:2:32;20218:21;;;20275:2;20255:18;;;20248:30;20314:34;20309:2;20294:18;;20287:62;-1:-1:-1;;;20380:2:32;20365:18;;20358:35;20425:3;20410:19;;20034:401;3705:44:0;;;;;;;;3768:34;3800:1;3768:34;;;;;;:::i;:::-;;;;;;;;3821;3853:1;3821:34;;;;;;:::i;2410:424::-;-1:-1:-1;;;;;;;;;;;2978:55:0;3059:16;2445:359;;2645:67;;2482:11;;-1:-1:-1;;;;;;;;;;;1671:64:0;2579:43;;2645:67;;1671:64;;-1:-1:-1;;;2670:17:0;2705:4;;2645:67;;;:::i;:::-;;;;-1:-1:-1;;2645:67:0;;;;;;;;;;2534:196;;;2645:67;2534:196;;:::i;:::-;;;;-1:-1:-1;;2534:196:0;;;;;;;;;;2499:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2445:359:0;2813:7;:14;;-1:-1:-1;;2813:14:0;;;;;2410:424::o;19453:117:5:-;19535:28;19540:5;19547:2;19551:4;19557:5;19535:4;:28::i;:::-;19453:117;;;:::o;17530:93::-;-1:-1:-1;;;;;;;;;;;17585:7:5;17593:22;17611:4;17593:15;:22;:::i;:::-;17585:31;;;;;;;;;;;;;1244:25:32;;1232:2;1217:18;;1098:177;17585:31:5;;;;;;;;;;;;;;;;;;;;1880:190:10;1963:14;1998:19;2005:1;2008:3;2013;1998:6;:19::i;:::-;1989:28;;2027:36;;;;;;;;;;;;;;-1:-1:-1;;;2027:36:10;;;2056:6;2027:12;:36::i;19576:825:5:-;19740:38;;;-1:-1:-1;;;;;2654:32:32;;;19740:38:5;;;;2636:51:32;;;;19740:38:5;;;;;;;;;;2609:18:32;;;;19740:38:5;;;;;;;-1:-1:-1;;;;;19740:38:5;-1:-1:-1;;;19740:38:5;;;19729:50;;19705:20;;19729:10;;;:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19702:77;;;19789:15;19818:7;19807:30;;;;;;;;;;;;:::i;:::-;19789:48;-1:-1:-1;19874:71:5;19940:4;19874:51;19922:2;19874:38;-1:-1:-1;;;19874:22:5;:8;19890:5;19874:15;:22::i;:::-;:26;;:38::i;:::-;:47;;:51::i;:::-;:65;;:71::i;:::-;19991:6;19987:408;;;20054:34;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20054:34:5;-1:-1:-1;;;20054:34:5;;;20043:46;;20016:23;;-1:-1:-1;;;;;20043:10:5;;;:46;;20054:34;20043:46;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20013:76;;;20103:14;20131:10;20120:33;;;;;;;;;;;;:::i;:::-;20103:50;;20178:7;20171:4;:14;20167:144;;;20216:14;20226:4;20216:7;:14;:::i;:::-;20205:26;;;;:::i;:::-;;;20167:144;;;20281:14;20288:7;20281:4;:14;:::i;:::-;20270:26;;;;:::i;:::-;;;20167:144;20324:60;20377:6;20324:38;-1:-1:-1;;;20324:22:5;:8;20340:5;20324:15;:22::i;:60::-;19999:396;;19661:740;;19576:825;;;;:::o;611:1263:10:-;695:14;736:3;729;:10;;721:85;;;;-1:-1:-1;;;721:85:10;;21400:2:32;721:85:10;;;21382:21:32;21439:2;21419:18;;;21412:30;21478:34;21458:18;;;21451:62;21549:32;21529:18;;;21522:60;21599:19;;721:85:10;;;;;;;;;1040:3;1035:1;:8;;:20;;;;;1052:3;1047:1;:8;;1035:20;1031:34;;;-1:-1:-1;1064:1:10;1057:8;;1031:34;1076:12;1091:9;1097:3;1091;:9;:::i;:::-;:13;;1103:1;1091:13;:::i;:::-;1076:28;;1299:1;1294;:6;;:18;;;;;1311:1;1304:4;:8;1294:18;1290:38;;;1321:7;1327:1;1321:3;:7;:::i;:::-;1314:14;;;;;1290:38;1347:15;1361:1;-1:-1:-1;;1347:15:10;:::i;:::-;1342:1;:20;;:46;;;;-1:-1:-1;1373:15:10;1387:1;-1:-1:-1;;1373:15:10;:::i;:::-;1366:4;:22;1342:46;1338:82;;;1404:15;1418:1;-1:-1:-1;;1404:15:10;:::i;:::-;1397:23;;:3;:23;:::i;1338:82::-;1524:3;1520:1;:7;1516:352;;;1543:12;1558:7;1562:3;1558:1;:7;:::i;:::-;1543:22;-1:-1:-1;1579:11:10;1593;1600:4;1543:22;1593:11;:::i;:::-;1579:25;;1622:3;1629:1;1622:8;1618:24;;1639:3;1632:10;;;;;;;1618:24;1677:1;1665:9;1671:3;1665;:9;:::i;:::-;:13;;;;:::i;:::-;1656:22;;1529:160;;1516:352;;;1703:3;1699:1;:7;1695:173;;;1722:12;1737:7;1743:1;1737:3;:7;:::i;:::-;1722:22;-1:-1:-1;1758:11:10;1772;1779:4;1722:22;1772:11;:::i;:::-;1758:25;;1801:3;1808:1;1801:8;1797:24;;1818:3;1811:10;;;;;;;1797:24;1844:9;1850:3;1844;:9;:::i;:::-;:13;;1856:1;1844:13;:::i;:::-;1835:22;;1708:160;;1695:173;711:1163;611:1263;;;;;:::o;6307:207::-;6383:11;297:42;-1:-1:-1;;;;;6399:36:10;6483:2;6487;6436:54;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6436:54:10;;;;;;;;;;;;;;-1:-1:-1;;;;;6436:54:10;-1:-1:-1;;;6436:54:10;;;6399:92;;;6436:54;6399:92;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7708:156:9;4581:12;;;:22;;-1:-1:-1;;;;;;4581:22:9;-1:-1:-1;;;;;4581:22:9;;;;;-1:-1:-1;4581:12:9;7821:36;7814:43;;7708:156;;;;;:::o;7870:143::-;4736:9;;;:16;;-1:-1:-1;;4736:16:9;;;;;;;;-1:-1:-1;4736:9:9;7976:30;4637:143;8175:152;5052:10;;;:47;;;;;;;8249:18;5052:47;;;;;;-1:-1:-1;;;;;5076:21:9;;5052:47;;;8310:4;8286:34;4948:179;8951:120;9031:33;9045:4;9059:3;9399:12;;;;9435:9;;;;9476:11;;;;9520:10;;;9497:33;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9399:12:9;;;;9435:9;;;;;;9385:11;;9497:33;;9520:10;;9497:33;;9520:10;9497:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9541:17;9578:4;9584:12;9592:3;9584:7;:12::i;:::-;9561:36;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;9561:36:9;;;;;;;;;-1:-1:-1;;;;;9612:15:9;;;;;;:10;;;9561:36;9612:15;;;;;;-1:-1:-1;;;;;;9612:21:9;;;;;;;;;9561:36;;-1:-1:-1;9612:21:9;;:15;;9644:34;;9661:3;;9666:11;;9644:34;;:::i;:::-;;;;-1:-1:-1;;9644:34:9;;;;;;;;;9634:45;;9644:34;9634:45;;;;9612:68;;;;;;;;;;-1:-1:-1;9612:68:9;;;;9607:110;;9696:10;9701:4;9696;:10::i;:::-;;9607:110;-1:-1:-1;;;;;9749:15:9;;9726:12;9749:15;;;;;;;;;;;-1:-1:-1;;;;;;9749:21:9;;;;;;;;;9781:34;;9749:21;;9726:12;;9781:34;;9798:3;;9803:11;;9781:34;;:::i;:::-;;;;;;;;;;;;;9771:45;;;;;;9749:68;;;;;;;;;;;;9741:77;;9726:92;;9829:12;9868:17;9889:3;-1:-1:-1;;;;;9889:14:9;9904:4;9889:20;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9865:44:9;-1:-1:-1;9930:38:9;;-1:-1:-1;9865:44:9;9951:16;9956:11;9951:2;:16;:::i;:::-;9930:14;:38::i;:::-;10003:18;;-1:-1:-1;;;10003:18:9;;9923:45;;-1:-1:-1;9988:12:9;;-1:-1:-1;;;;;;;;;;;;10003:7:9;;;:18;;10011:3;;10016:4;;10003:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9988:33;;10044:4;10036;:12;10032:218;;10064:175;;-1:-1:-1;;;10064:175:9;;;;;;;:::i;:::-;10259:24;;-1:-1:-1;;;10259:24:9;;-1:-1:-1;;;;;;;;;;;10259:8:9;;;:24;;10268:3;;10273:4;;10279:3;;10259:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10300:12:9;;;10293:19;;-1:-1:-1;;;;;;10293:19:9;;;-1:-1:-1;10329:9:9;;;10322:16;;-1:-1:-1;;10322:16:9;;;10348:17;-1:-1:-1;10355:10:9;;10300:12;10348:17;:::i;:::-;10382:4;:11;;10375:18;;;9375:1025;;;;;;;;9305:1095;;:::o;11479:393::-;11538:12;11562:19;11594:1;:8;11605:2;11594:13;;;;:::i;:::-;11584:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11584:24:9;;11562:46;;11623:9;11618:224;11642:1;:8;11638:1;:12;11618:224;;;11671:9;11683:1;11685;11683:4;;;;;;;;:::i;:::-;;;;;;;11671:16;;11816:1;11810;11806:2;11802:10;11798:2;11794:19;11786:6;11782:32;11775:43;11757:75;11652:3;;;;;:::i;:::-;;;;11618:224;;;-1:-1:-1;11859:6:9;11479:393;-1:-1:-1;;11479:393:9:o;7587:115::-;7644:7;7670:25;7690:4;7670:19;:25::i;11118:304::-;11196:7;11215:11;11237;11262:2;11251:1;:8;:13;:29;;11272:1;:8;11251:29;;;11267:2;11251:29;11237:43;;11295:9;11290:106;11314:3;11310:1;:7;11290:106;;;11379:5;:1;11383;11379:5;:::i;:::-;11353:1;11355:10;11364:1;11355:6;:10;:::i;:::-;11353:13;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;11353:13:9;11345:40;;11338:47;;;;;11319:3;;;;:::i;:::-;;;;11290:106;;;-1:-1:-1;11412:3:9;;11118:304;-1:-1:-1;;;;11118:304:9:o;1264:3205::-;1354:12;;;;1390:9;;;;1431:11;;;;1475:10;;;1452:33;;;;;;;;;;;;;;;;;;;1321:7;;-1:-1:-1;;;;;1354:12:9;;1390:9;;;1431:11;1321:7;;1452:33;;1475:10;;1452:33;;;1475:10;1452:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;1536:15:9;;;;;;:10;;;:15;;;;;;;;-1:-1:-1;;;;;;1536:21:9;;;;;;;;;1568:34;;1452:33;;-1:-1:-1;1536:21:9;:15;;-1:-1:-1;1568:34:9;;-1:-1:-1;1452:33:9;;1590:11;;1568:34;;:::i;:::-;;;;-1:-1:-1;;1568:34:9;;;;;;;;;1558:45;;1568:34;1558:45;;;;1536:68;;;;;;;;;;-1:-1:-1;1536:68:9;;;;1532:174;;;-1:-1:-1;;;;;1627:15:9;;:10;:15;;;;;;;;;;;-1:-1:-1;;;;;;1627:21:9;;;;;;;;;1659:34;;1627:21;;:10;1659:34;;1676:3;;1681:11;;1659:34;;:::i;:::-;;;;;;;;;;;;;1649:45;;;;;;1627:68;;;;;;;;;;;;1620:75;;;;;;1264:3205;;;:::o;1532:174::-;1715:17;1752:4;1758:12;1766:3;1758:7;:12::i;:::-;1735:36;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1715:56;;-1:-1:-1;;;;;;;;;;;580:37:9;;-1:-1:-1;;;;;1781:9:9;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1802:12;1841:17;1862:3;-1:-1:-1;;;;;1862:14:9;1877:4;1862:20;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1838:44:9;-1:-1:-1;1903:38:9;;-1:-1:-1;1838:44:9;1924:16;1929:11;1924:2;:16;:::i;:::-;1903:14;:38::i;:::-;1990:25;;-1:-1:-1;;;1990:25:9;;-1:-1:-1;;;;;2654:32:32;;1990:25:9;;;2636:51:32;1896:45:9;;-1:-1:-1;1963:22:9;;-1:-1:-1;;;;;;;;;;;;1990:11:9;;;2609:18:32;;1990:25:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1990:25:9;;;;;;;;;;;;:::i;:::-;1962:53;;;2029:5;:12;2045:1;2029:17;2025:2068;;2062:12;-1:-1:-1;;;;;;;;;;;580:37:9;;-1:-1:-1;;;;;2077:7:9;;2085:3;2090:5;2096:1;2090:8;;;;;;;;:::i;:::-;;;;;;;2077:22;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2062:37;-1:-1:-1;2062:37:9;2113:106;;2160:44;2181:3;2194:5;2200:1;2194:8;;;;;;;;:::i;:::-;;;;;;;2186:17;;2160:44;;;;;;;:::i;:::-;;;;;;;;2113:106;2244:4;2236;:12;2232:238;;2268:187;;-1:-1:-1;;;2268:187:9;;;;;;;:::i;:::-;2488:86;2498:3;2503:4;2536:3;2541:11;2519:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2509:45;;;;;;2564:5;2570:1;2564:8;;;;;;;;:::i;:::-;;;;;;;2556:17;;2488:86;;;;;;;;;:::i;:::-;;;;;;;;2667:5;2673:1;2667:8;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2588:15:9;;2659:17;2588:15;;;;;;;;;;-1:-1:-1;;;;;;2588:21:9;;;;;;;;;2620:34;;2667:8;;2588:21;;2620:34;;2637:3;;2642:11;;2620:34;;:::i;:::-;;;;-1:-1:-1;;2620:34:9;;;;;;;;;2610:45;;2620:34;2610:45;;;;2588:68;;;;;;;;;;;;-1:-1:-1;2588:68:9;;;:88;;;;-1:-1:-1;;;;;2690:15:9;;;;2761:4;2690:10;;;:15;;;;;-1:-1:-1;;;;;;2690:21:9;;;;;;;;;2722:34;;2761:4;;-1:-1:-1;2722:34:9;;2739:3;;2744:11;;2722:34;;:::i;:::-;;;;;;;-1:-1:-1;;2722:34:9;;;;;;2712:45;;2722:34;2712:45;;;;2690:68;;;;;;;;;;-1:-1:-1;2690:68:9;:75;;-1:-1:-1;;2690:75:9;;;;;;;;;;-1:-1:-1;2025:2068:9;;;2801:1;2786:5;:12;:16;2782:1311;;;2823:9;2818:1152;2842:5;:12;2838:1;:16;2818:1152;;;2879:12;-1:-1:-1;;;;;;;;;;;580:37:9;;-1:-1:-1;;;;;2894:7:9;;2902:3;2907:5;2913:1;2907:8;;;;;;;;:::i;:::-;;;;;;;2894:22;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2879:37;-1:-1:-1;2879:37:9;2934:114;;2985:44;3006:3;3019:5;3025:1;3019:8;;;;;;;;:::i;:::-;;;;;;;3011:17;;2985:44;;;;;;;:::i;:::-;;;;;;;;2934:114;-1:-1:-1;;;;;;;;;;;580:37:9;;-1:-1:-1;;;;;3090:8:9;;3099:3;3104:5;3110:1;3104:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;3090:43:9;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3151:12;3181:17;3256:3;-1:-1:-1;;;;;3256:14:9;3271:4;3256:20;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3238:38:9;;-1:-1:-1;3238:38:9;-1:-1:-1;3305:38:9;3238;3326:16;3331:11;3326:2;:16;:::i;3305:38::-;3298:45;;3384:7;:37;;;;;-1:-1:-1;;;3395:4:9;:26;3384:37;3380:529;;;3519:86;3529:3;3534:4;3567:3;3572:11;3550:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3540:45;;;;;;3595:5;3601:1;3595:8;;;;;;;;:::i;:::-;;;;;;;3587:17;;3519:86;;;;;;;;;:::i;:::-;;;;;;;;3706:5;3712:1;3706:8;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;3627:15:9;;3698:17;3627:15;;;;;;;;;;-1:-1:-1;;;;;;3627:21:9;;;;;;;;;3659:34;;3706:8;;3627:21;;3659:34;;3676:3;;3681:11;;3659:34;;:::i;:::-;;;;;;;;;;;;;3649:45;;;;;;3627:68;;;;;;;;;;;:88;;;;3808:4;3737;:10;;:15;3748:3;-1:-1:-1;;;;;3737:15:9;-1:-1:-1;;;;;3737:15:9;;;;;;;;;;;;:21;3753:4;-1:-1:-1;;;;;3737:21:9;;-1:-1:-1;;;;;3737:21:9;;;;;;;;;;;;;:68;3786:3;3791:11;3769:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3759:45;;;;;;3737:68;;;;;;;;;;;;:75;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;580:37:9;;-1:-1:-1;;;;;3834:8:9;;3843:3;3848:5;3854:1;3848:8;;;;;;;;:::i;:::-;;;;;;;3858:4;3834:29;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3885:5;;;;;3380:529;-1:-1:-1;;;;;;;;;;;580:37:9;;-1:-1:-1;;;;;3926:8:9;;3935:3;3940:5;3946:1;3940:8;;;;;;;;:::i;:::-;;;;;;;3950:4;3926:29;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2861:1109;;;2856:3;;;;;:::i;:::-;;;;2818:1152;;;;2782:1311;;;4000:82;;;-1:-1:-1;;;4000:82:9;;25370:2:32;4000:82:9;;;25352:21:32;25389:18;;;25382:30;;;;25448:34;25428:18;;;25421:62;25519:34;25499:18;;;25492:62;25571:19;;4000:82:9;25168:428:32;4000:82:9;-1:-1:-1;;;;;4124:15:9;;;;;;:10;;;:15;;;;;;;;-1:-1:-1;;;;;;4124:21:9;;;;;;;;;4156:34;;4124:21;;:15;4156:34;;4173:3;;4178:11;;4156:34;;:::i;:::-;;;;-1:-1:-1;;4156:34:9;;;;;;;;;4146:45;;4156:34;4146:45;;;;4124:68;;;;;;;;;;-1:-1:-1;4124:68:9;;;;4103:162;;;;-1:-1:-1;;;4103:162:9;;25803:2:32;4103:162:9;;;25785:21:32;25842:2;25822:18;;;25815:30;25881:34;25861:18;;;25854:62;-1:-1:-1;;;25932:18:32;;;25925:45;25987:19;;4103:162:9;25601:411:32;4103:162:9;4283:12;;;4276:19;;-1:-1:-1;;;;;;4276:19:9;;;4312:9;;;4305:16;;-1:-1:-1;;4305:16:9;;;4331:17;-1:-1:-1;4338:10:9;;4283:12;4331:17;:::i;:::-;4358:18;4365:11;;;4358:18;;;-1:-1:-1;;;;;4394:15:9;;;;;;;;;;;;-1:-1:-1;;;;;;4394:21:9;;;;;;;;;4426:34;;4394:21;;4358:18;4426:34;;4443:3;;4448:11;;4426:34;;:::i;:::-;;;;;;;;;;;;;4416:45;;;;;;4394:68;;;;;;;;;;;;4387:75;;;;;;;;;1264:3205;;;:::o;6950:393::-;7009:12;7033:19;7065:1;:8;7076:2;7065:13;;;;:::i;:::-;7055:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7055:24:9;;7033:46;;7094:9;7089:224;7113:1;:8;7109:1;:12;7089:224;;;7142:9;7154:1;7156;7154:4;;;;;;;;:::i;:::-;;;;;;;7142:16;;7287:1;7281;7277:2;7273:10;7269:2;7265:19;7257:6;7253:32;7246:43;7228:75;7123:3;;;;;:::i;:::-;;;;7089:224;;6640:304;6718:7;6737:11;6759;6784:2;6773:1;:8;:13;:29;;6794:1;:8;6773:29;;;6789:2;6773:29;6759:43;;6817:9;6812:106;6836:3;6832:1;:7;6812:106;;;6901:5;:1;6905;6901:5;:::i;:::-;6875:1;6877:10;6886:1;6877:6;:10;:::i;:::-;6875:13;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;6875:13:9;6867:40;;6860:47;;;;;6841:3;;;;:::i;:::-;;;;6812:106;;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;203:316:32:-;280:6;288;296;349:2;337:9;328:7;324:23;320:32;317:52;;;365:1;362;355:12;317:52;-1:-1:-1;;388:23:32;;;458:2;443:18;;430:32;;-1:-1:-1;509:2:32;494:18;;;481:32;;203:316;-1:-1:-1;203:316:32:o;524:118::-;610:5;603:13;596:21;589:5;586:32;576:60;;632:1;629;622:12;647:446;730:6;738;746;754;807:3;795:9;786:7;782:23;778:33;775:53;;;824:1;821;814:12;775:53;860:9;847:23;837:33;;917:2;906:9;902:18;889:32;879:42;;968:2;957:9;953:18;940:32;930:42;;1022:2;1011:9;1007:18;994:32;1035:28;1057:5;1035:28;:::i;:::-;647:446;;;;-1:-1:-1;647:446:32;;-1:-1:-1;;647:446:32:o;1280:131::-;-1:-1:-1;;;;;1355:31:32;;1345:42;;1335:70;;1401:1;1398;1391:12;1416:383;1493:6;1501;1509;1562:2;1550:9;1541:7;1537:23;1533:32;1530:52;;;1578:1;1575;1568:12;1530:52;1614:9;1601:23;1591:33;;1674:2;1663:9;1659:18;1646:32;1687:31;1712:5;1687:31;:::i;:::-;1416:383;;1737:5;;-1:-1:-1;;;1789:2:32;1774:18;;;;1761:32;;1416:383::o;1804:180::-;1863:6;1916:2;1904:9;1895:7;1891:23;1887:32;1884:52;;;1932:1;1929;1922:12;1884:52;-1:-1:-1;1955:23:32;;1804:180;-1:-1:-1;1804:180:32:o;2181:304::-;-1:-1:-1;;;;;2411:15:32;;;2393:34;;2463:15;;2458:2;2443:18;;2436:43;2343:2;2328:18;;2181:304::o;2698:245::-;2765:6;2818:2;2806:9;2797:7;2793:23;2789:32;2786:52;;;2834:1;2831;2824:12;2786:52;2866:9;2860:16;2885:28;2907:5;2885:28;:::i;2948:127::-;3009:10;3004:3;3000:20;2997:1;2990:31;3040:4;3037:1;3030:15;3064:4;3061:1;3054:15;3080:253;3152:2;3146:9;3194:4;3182:17;;3229:18;3214:34;;3250:22;;;3211:62;3208:88;;;3276:18;;:::i;:::-;3312:2;3305:22;3080:253;:::o;3338:275::-;3409:2;3403:9;3474:2;3455:13;;-1:-1:-1;;3451:27:32;3439:40;;3509:18;3494:34;;3530:22;;;3491:62;3488:88;;;3556:18;;:::i;:::-;3592:2;3585:22;3338:275;;-1:-1:-1;3338:275:32:o;3618:191::-;3686:4;3719:18;3711:6;3708:30;3705:56;;;3741:18;;:::i;:::-;-1:-1:-1;3786:1:32;3782:14;3798:4;3778:25;;3618:191::o;3814:1368::-;3936:6;3967:2;4010;3998:9;3989:7;3985:23;3981:32;3978:52;;;4026:1;4023;4016:12;3978:52;4059:9;4053:16;4092:18;4084:6;4081:30;4078:50;;;4124:1;4121;4114:12;4078:50;4147:22;;4200:4;4192:13;;4188:27;-1:-1:-1;4178:55:32;;4229:1;4226;4219:12;4178:55;4258:2;4252:9;4281:68;4297:51;4345:2;4297:51;:::i;:::-;4281:68;:::i;:::-;4383:15;;;4445:4;4484:11;;;4476:20;;4472:29;;;4414:12;;;;4371:3;4513:19;;;4510:39;;;4545:1;4542;4535:12;4510:39;4569:11;;;;4589:563;4605:6;4600:3;4597:15;4589:563;;;4685:2;4679:3;4670:7;4666:17;4662:26;4659:116;;;4729:1;4758:2;4754;4747:14;4659:116;4801:22;;:::i;:::-;4857:3;4851:10;4874:33;4899:7;4874:33;:::i;:::-;4920:22;;4984:12;;;4978:19;4962:14;;;4955:43;5021:2;5065:12;;;5059:19;5043:14;;;5036:43;5092:18;;4622:12;;;;5130;;;;4589:563;;;-1:-1:-1;5171:5:32;3814:1368;-1:-1:-1;;;;;;;3814:1368:32:o;5187:184::-;5257:6;5310:2;5298:9;5289:7;5285:23;5281:32;5278:52;;;5326:1;5323;5316:12;5278:52;-1:-1:-1;5349:16:32;;5187:184;-1:-1:-1;5187:184:32:o;5376:402::-;-1:-1:-1;;;;;5661:15:32;;;5643:34;;5713:15;;;;5708:2;5693:18;;5686:43;5760:2;5745:18;;5738:34;;;;5593:2;5578:18;;5376:402::o;5783:127::-;5844:10;5839:3;5835:20;5832:1;5825:31;5875:4;5872:1;5865:15;5899:4;5896:1;5889:15;5915:127;5976:10;5971:3;5967:20;5964:1;5957:31;6007:4;6004:1;5997:15;6031:4;6028:1;6021:15;6047:127;6108:10;6103:3;6099:20;6096:1;6089:31;6139:4;6136:1;6129:15;6163:4;6160:1;6153:15;6179:128;6246:9;;;6267:11;;;6264:37;;;6281:18;;:::i;6312:422::-;6401:1;6444:5;6401:1;6458:270;6479:7;6469:8;6466:21;6458:270;;;6538:4;6534:1;6530:6;6526:17;6520:4;6517:27;6514:53;;;6547:18;;:::i;:::-;6597:7;6587:8;6583:22;6580:55;;;6617:16;;;;6580:55;6696:22;;;;6656:15;;;;6458:270;;;6462:3;6312:422;;;;;:::o;6739:806::-;6788:5;6818:8;6808:80;;-1:-1:-1;6859:1:32;6873:5;;6808:80;6907:4;6897:76;;-1:-1:-1;6944:1:32;6958:5;;6897:76;6989:4;7007:1;7002:59;;;;7075:1;7070:130;;;;6982:218;;7002:59;7032:1;7023:10;;7046:5;;;7070:130;7107:3;7097:8;7094:17;7091:43;;;7114:18;;:::i;:::-;-1:-1:-1;;7170:1:32;7156:16;;7185:5;;6982:218;;7284:2;7274:8;7271:16;7265:3;7259:4;7256:13;7252:36;7246:2;7236:8;7233:16;7228:2;7222:4;7219:12;7215:35;7212:77;7209:159;;;-1:-1:-1;7321:19:32;;;7353:5;;7209:159;7400:34;7425:8;7419:4;7400:34;:::i;:::-;7470:6;7466:1;7462:6;7458:19;7449:7;7446:32;7443:58;;;7481:18;;:::i;:::-;7519:20;;6739:806;-1:-1:-1;;;6739:806:32:o;7550:131::-;7610:5;7639:36;7666:8;7660:4;7639:36;:::i;7686:127::-;7747:10;7742:3;7738:20;7735:1;7728:31;7778:4;7775:1;7768:15;7802:4;7799:1;7792:15;7818:120;7858:1;7884;7874:35;;7889:18;;:::i;:::-;-1:-1:-1;7923:9:32;;7818:120::o;7943:168::-;8016:9;;;8047;;8064:15;;;8058:22;;8044:37;8034:71;;8085:18;;:::i;8775:348::-;9005:2;8994:9;8987:21;8968:4;9025:49;9070:2;9059:9;9055:18;8688:2;8676:15;;-1:-1:-1;;;8716:4:32;8707:14;;8700:36;8761:2;8752:12;;8611:159;9025:49;9017:57;;9110:6;9105:2;9094:9;9090:18;9083:34;8775:348;;;;:::o;9292:::-;9522:2;9511:9;9504:21;9485:4;9542:49;9587:2;9576:9;9572:18;9205:2;9193:15;;-1:-1:-1;;;9233:4:32;9224:14;;9217:36;9278:2;9269:12;;9128:159;10144:251;10214:6;10267:2;10255:9;10246:7;10242:23;10238:32;10235:52;;;10283:1;10280;10273:12;10235:52;10315:9;10309:16;10334:31;10359:5;10334:31;:::i;12037:112::-;12069:1;12095;12085:35;;12100:18;;:::i;:::-;-1:-1:-1;12134:9:32;;12037:112::o;12154:125::-;12219:9;;;12240:10;;;12237:36;;;12253:18;;:::i;12284:274::-;-1:-1:-1;;;;;12476:32:32;;;;12458:51;;12540:2;12525:18;;12518:34;12446:2;12431:18;;12284:274::o;12563:345::-;-1:-1:-1;;;;;12783:32:32;;;;12765:51;;12847:2;12832:18;;12825:34;;;;12890:2;12875:18;;12868:34;12753:2;12738:18;;12563:345::o;17126:250::-;17211:1;17221:113;17235:6;17232:1;17229:13;17221:113;;;17311:11;;;17305:18;17292:11;;;17285:39;17257:2;17250:10;17221:113;;;-1:-1:-1;;17368:1:32;17350:16;;17343:27;17126:250::o;17381:384::-;-1:-1:-1;;;;;;17566:33:32;;17554:46;;17623:13;;17536:3;;17645:74;17623:13;17708:1;17699:11;;17692:4;17680:17;;17645:74;:::i;:::-;17739:16;;;;17757:1;17735:24;;17381:384;-1:-1:-1;;;17381:384:32:o;17770:287::-;17899:3;17937:6;17931:13;17953:66;18012:6;18007:3;18000:4;17992:6;17988:17;17953:66;:::i;:::-;18035:16;;;;;17770:287;-1:-1:-1;;17770:287:32:o;18465:271::-;18507:3;18545:5;18539:12;18572:6;18567:3;18560:19;18588:76;18657:6;18650:4;18645:3;18641:14;18634:4;18627:5;18623:16;18588:76;:::i;:::-;18718:2;18697:15;-1:-1:-1;;18693:29:32;18684:39;;;;18725:4;18680:50;;18465:271;-1:-1:-1;;18465:271:32:o;18741:440::-;18991:2;18980:9;18973:21;18954:4;19017:49;19062:2;19051:9;19047:18;8688:2;8676:15;;-1:-1:-1;;;8716:4:32;8707:14;;8700:36;8761:2;8752:12;;8611:159;19017:49;19114:9;19106:6;19102:22;19097:2;19086:9;19082:18;19075:50;19142:33;19168:6;19160;19142:33;:::i;19186:440::-;19436:2;19425:9;19418:21;19399:4;19462:49;19507:2;19496:9;19492:18;9205:2;9193:15;;-1:-1:-1;;;9233:4:32;9224:14;;9217:36;9278:2;9269:12;;9128:159;20440:374;20670:2;20659:9;20652:21;20633:4;20690:49;20735:2;20724:9;20720:18;8688:2;8676:15;;-1:-1:-1;;;8716:4:32;8707:14;;8700:36;8761:2;8752:12;;8611:159;20690:49;-1:-1:-1;;;;;20775:32:32;;;;20770:2;20755:18;;;;20748:60;;;;-1:-1:-1;20682:57:32;20440:374::o;20819:::-;21049:2;21038:9;21031:21;21012:4;21069:49;21114:2;21103:9;21099:18;9205:2;9193:15;;-1:-1:-1;;;9233:4:32;9224:14;;9217:36;9278:2;9269:12;;9128:159;21629:291;21806:2;21795:9;21788:21;21769:4;21826:45;21867:2;21856:9;21852:18;21844:6;21826:45;:::i;:::-;21818:53;;21907:6;21902:2;21891:9;21887:18;21880:34;21629:291;;;;;:::o;21925:610::-;22171:13;;22114:3;;22145;;22224:4;22251:15;;;22114:3;22294:175;22308:6;22305:1;22302:13;22294:175;;;22371:13;;22357:28;;22407:14;;;;22444:15;;;;22330:1;22323:9;22294:175;;;-1:-1:-1;;22478:21:32;;;-1:-1:-1;22515:14:32;;;;;-1:-1:-1;;;21925:610:32:o;22729:556::-;22931:2;22913:21;;;22970:3;22950:18;;;22943:31;23010:34;23005:2;22990:18;;22983:62;23081:34;23076:2;23061:18;;23054:62;23153:34;23147:3;23132:19;;23125:63;-1:-1:-1;;;23219:3:32;23204:19;;23197:46;23275:3;23260:19;;22729:556::o;23290:135::-;23329:3;23350:17;;;23347:43;;23370:18;;:::i;:::-;-1:-1:-1;23417:1:32;23406:13;;23290:135::o;23430:667::-;23495:5;23548:3;23541:4;23533:6;23529:17;23525:27;23515:55;;23566:1;23563;23556:12;23515:55;23595:6;23589:13;23621:4;23645:68;23661:51;23709:2;23661:51;:::i;23645:68::-;23747:15;;;23833:1;23829:10;;;;23817:23;;23813:32;;;23778:12;;;;23857:15;;;23854:35;;;23885:1;23882;23875:12;23854:35;23921:2;23913:6;23909:15;23933:135;23949:6;23944:3;23941:15;23933:135;;;24015:10;;24003:23;;24046:12;;;;23966;;23933:135;;;-1:-1:-1;24086:5:32;23430:667;-1:-1:-1;;;;;;23430:667:32:o;24102:614::-;24231:6;24239;24292:2;24280:9;24271:7;24267:23;24263:32;24260:52;;;24308:1;24305;24298:12;24260:52;24341:9;24335:16;24370:18;24411:2;24403:6;24400:14;24397:34;;;24427:1;24424;24417:12;24397:34;24450:72;24514:7;24505:6;24494:9;24490:22;24450:72;:::i;:::-;24440:82;;24568:2;24557:9;24553:18;24547:25;24531:41;;24597:2;24587:8;24584:16;24581:36;;;24613:1;24610;24603:12;24581:36;;24636:74;24702:7;24691:8;24680:9;24676:24;24636:74;:::i;:::-;24626:84;;;24102:614;;;;;:::o;24721:442::-;-1:-1:-1;;;;;24968:32:32;;;;24950:51;;-1:-1:-1;;;;;;25037:33:32;;;;25032:2;25017:18;;25010:61;25102:2;25087:18;;25080:34;25145:2;25130:18;;25123:34;24937:3;24922:19;;24721:442::o", "linkReferences": {} }, "methodIdentifiers": { @@ -902,7 +902,7 @@ "withinDiff(uint256,uint256,uint256)": "344b1478", "withinPrecision(uint256,uint256,uint256)": "30f7c5c3" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INTEREST_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LATEFEE_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PREMIUM_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"nonZero\",\"type\":\"bool\"}],\"name\":\"constrictToRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"constrictToRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createActors\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"symbol\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUpTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_addInvestor_restrictions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_addInvestor_state_changes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_claim_edge_cases\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"test_vesting_claim_fuzzing1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"test_vesting_claim_fuzzing2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_claim_restrictions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_claim_state_changes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_enableVesting_restrictions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_enableVesting_state_changes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_getAmountToClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_getAmountToClaim_restrictions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_init_state\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_removeInvestor_largeArray\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_removeInvestor_restrictions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_removeInvestor_state_changes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_withdrawErc20_restrictions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_withdrawErc20_state_changes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"val1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedDiff\",\"type\":\"uint256\"}],\"name\":\"withinDiff\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"val1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accuracy\",\"type\":\"uint256\"}],\"name\":\"withinPrecision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"test_vesting_addInvestor_restrictions()\":{\"details\":\"Verifies addInvestor restrictions\"},\"test_vesting_addInvestor_state_changes()\":{\"details\":\"Verifies addInvestor state changes\"},\"test_vesting_claim_edge_cases()\":{\"details\":\"Verifies claim() edge cases\"},\"test_vesting_claim_fuzzing1(uint256)\":{\"details\":\"Verifies claim() state changes using fuzzing\"},\"test_vesting_claim_fuzzing2(uint256)\":{\"details\":\"Verifies claim() edge cases using fuzzing\"},\"test_vesting_claim_restrictions()\":{\"details\":\"Verifies claim() restrictions\"},\"test_vesting_claim_state_changes()\":{\"details\":\"Verifies claim() state changes\"},\"test_vesting_enableVesting_restrictions()\":{\"details\":\"Verifies enableVesting restrictions.\"},\"test_vesting_enableVesting_state_changes()\":{\"details\":\"Verifies enableVesting state changes.\"},\"test_vesting_getAmountToClaim()\":{\"details\":\"Verifies getAmountToClaim()\"},\"test_vesting_getAmountToClaim_restrictions()\":{\"details\":\"Verifies getAmountToClaim() restrictions\"},\"test_vesting_removeInvestor_largeArray()\":{\"details\":\"Verifies removeInvestor() pops elements correctly from investorLibrary[]\"},\"test_vesting_removeInvestor_restrictions()\":{\"details\":\"Verifies removeInvestor() restrictions\"},\"test_vesting_removeInvestor_state_changes()\":{\"details\":\"Verifies removeInvestor() state changes\"},\"test_vesting_withdrawErc20_restrictions()\":{\"details\":\"Verifies withdrawErc20 restrictions.\"},\"test_vesting_withdrawErc20_state_changes()\":{\"details\":\"Verifies withdrawErc20 state changes.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/Vesting.t.sol\":\"VestingTest\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xcf17bed19a42d40b15e584cfc57b1cef2b2b0e55d812f6740afe2c5c4bf801d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78e8f19f8b8b6107a39d892d073cfeb8872cce4d5c8e7957d29941e092e16fea\",\"dweb:/ipfs/QmYQfx7UYDjSx77d8WmbveFkXK6AyrUfYUdxvufGLbVPSm\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xe4913fabc9dbebe2ebb4ba4eaf629380a71b88b255fabc05492990bfa3b185bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1989ae3326aafbbf80f75036869d5ea3c752614dfce7df17ce0912a7a16dbb7\",\"dweb:/ipfs/QmSQju3J4cHLZeVsnWk53it94W2N243mvbyx42hhV5BxED\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"src/Vesting.sol\":{\"keccak256\":\"0x9bbba0177c1e6e33919153caf168a978cea4140158713283ddf39e8f9efd5b4a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2b3e9f85c2c9b104be07aed03ae1f719d3a6712a8447fc37e1efd73e3c07dcd8\",\"dweb:/ipfs/QmewoBQ8Uu8VRfVFuizmPYgsWNKFfaQQqaSDjMMNhNJzaC\"]},\"src/extensions/Context.sol\":{\"keccak256\":\"0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12\",\"dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV\"]},\"src/extensions/Ownable.sol\":{\"keccak256\":\"0xbe3f4ae2a873ee339e0ac54107262ee789604570a463549fd43364289769207f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca9dde5e484d808440ff8ac43892b8f59a2b76d5084efce1dfa904d800c0f9c6\",\"dweb:/ipfs/QmRnQ2x3a9GwVKf7wbRhNY1MwdxyoTkvDtLFqjXxhEoALA\"]},\"src/interfaces/Interfaces.sol\":{\"keccak256\":\"0x741b318f522ba8451f4a2e40afcf59e995484318fabe7c57adeba3124bbd7e04\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dba0a37a10519080f892d5c8b87a0ec026ef73492195a901e49f74766b5915f7\",\"dweb:/ipfs/QmduauRea8YdqJaMeHiYH2tRtbydoqgVirSaTzbXMoEjYX\"]},\"src/users/Actor.sol\":{\"keccak256\":\"0x4d9d9176a043f8212d9f383afa33565fcc83845346ae77d6b4bd80a5ece31b5e\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://6c9d789e1e106682d4ee38523b8b8af1b02903aba1079e5dc2ec31ecf709f96a\",\"dweb:/ipfs/QmSuGiTD8dPDXBLU4B3EoJK2zyQz3MQ9GKYiWzPyJnasRb\"]},\"test/Utility.sol\":{\"keccak256\":\"0xcea126c8754daffe443e2328ce2424b7b3dcafec7f3bb73c1f85c1502849552f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://386bb899985ba398a7e34cc5a15c99c73c3a55b4d40356aa01f1147a8b377775\",\"dweb:/ipfs/QmSQE7R4iNQhVyNSWj9Gs839udCrTm2EiuvezJLuwS7vds\"]},\"test/Vesting.t.sol\":{\"keccak256\":\"0x02f8343a68c319fb9bc7f4af32804b4ed81d71233cf64e2122e9f9ea846e9ca6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0a25cbe0d6551eb7f8427c3ff95ffed7872ed88b22be8ced21fd441247489089\",\"dweb:/ipfs/QmREkZYB6NUpmUoo9Prpe9723FaA71K2xZHhqe3vniGuuq\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"Debug\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INTEREST_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LATEFEE_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PREMIUM_CALC_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SL_FACTORY\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"nonZero\",\"type\":\"bool\"}],\"name\":\"constrictToRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"constrictToRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createActors\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"symbol\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amt\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUpTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_addInvestor_restrictions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_addInvestor_state_changes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_claim_edge_cases\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"test_vesting_claim_fuzzing1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"test_vesting_claim_fuzzing2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_claim_restrictions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_claim_state_changes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_enableVesting_restrictions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_enableVesting_state_changes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_getAmountToClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_getAmountToClaim_restrictions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_init_state\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_removeInvestor_largeArray\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_removeInvestor_restrictions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_removeInvestor_state_changes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_withdrawErc20_restrictions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_vesting_withdrawErc20_state_changes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"val1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedDiff\",\"type\":\"uint256\"}],\"name\":\"withinDiff\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"val1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accuracy\",\"type\":\"uint256\"}],\"name\":\"withinPrecision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"test_vesting_addInvestor_restrictions()\":{\"details\":\"Verifies addInvestor restrictions\"},\"test_vesting_addInvestor_state_changes()\":{\"details\":\"Verifies addInvestor state changes\"},\"test_vesting_claim_edge_cases()\":{\"details\":\"Verifies claim() edge cases\"},\"test_vesting_claim_fuzzing1(uint256)\":{\"details\":\"Verifies claim() state changes using fuzzing\"},\"test_vesting_claim_fuzzing2(uint256)\":{\"details\":\"Verifies claim() edge cases using fuzzing\"},\"test_vesting_claim_restrictions()\":{\"details\":\"Verifies claim() restrictions\"},\"test_vesting_claim_state_changes()\":{\"details\":\"Verifies claim() state changes\"},\"test_vesting_enableVesting_restrictions()\":{\"details\":\"Verifies enableVesting restrictions.\"},\"test_vesting_enableVesting_state_changes()\":{\"details\":\"Verifies enableVesting state changes.\"},\"test_vesting_getAmountToClaim()\":{\"details\":\"Verifies getAmountToClaim()\"},\"test_vesting_getAmountToClaim_restrictions()\":{\"details\":\"Verifies getAmountToClaim() restrictions\"},\"test_vesting_removeInvestor_largeArray()\":{\"details\":\"Verifies removeInvestor() pops elements correctly from investorLibrary[]\"},\"test_vesting_removeInvestor_restrictions()\":{\"details\":\"Verifies removeInvestor() restrictions\"},\"test_vesting_removeInvestor_state_changes()\":{\"details\":\"Verifies removeInvestor() state changes\"},\"test_vesting_withdrawErc20_restrictions()\":{\"details\":\"Verifies withdrawErc20 restrictions.\"},\"test_vesting_withdrawErc20_state_changes()\":{\"details\":\"Verifies withdrawErc20 state changes.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/Vesting.t.sol\":\"VestingTest\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xcf17bed19a42d40b15e584cfc57b1cef2b2b0e55d812f6740afe2c5c4bf801d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78e8f19f8b8b6107a39d892d073cfeb8872cce4d5c8e7957d29941e092e16fea\",\"dweb:/ipfs/QmYQfx7UYDjSx77d8WmbveFkXK6AyrUfYUdxvufGLbVPSm\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xe4913fabc9dbebe2ebb4ba4eaf629380a71b88b255fabc05492990bfa3b185bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1989ae3326aafbbf80f75036869d5ea3c752614dfce7df17ce0912a7a16dbb7\",\"dweb:/ipfs/QmSQju3J4cHLZeVsnWk53it94W2N243mvbyx42hhV5BxED\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"src/Vesting.sol\":{\"keccak256\":\"0x3fb59f7d29ccc67ec5aa7b9c064b73734c50c7a68a5f4cac138df7922dfc3356\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0fc8b6e747264c821ede1849cc1c257d97de3006a78b5de396a3837d81377907\",\"dweb:/ipfs/QmU4HUzVvgQGUSS2vknorfoLMvfqvz1F5Whr4mW9x46w7w\"]},\"src/extensions/Context.sol\":{\"keccak256\":\"0x8795d48b0db75e627ea6d57f1eb24e269519a1db8ce2e7d3a4441dd516a9b016\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39249193e7e48805d84c55471a695d8f88a3358f0b3274b94ce4e83278a53a12\",\"dweb:/ipfs/QmQcrb4WuzRmY3oeX8ush6EqhtjqmfFxpawXk2ceHoFMiV\"]},\"src/extensions/Ownable.sol\":{\"keccak256\":\"0xbe3f4ae2a873ee339e0ac54107262ee789604570a463549fd43364289769207f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca9dde5e484d808440ff8ac43892b8f59a2b76d5084efce1dfa904d800c0f9c6\",\"dweb:/ipfs/QmRnQ2x3a9GwVKf7wbRhNY1MwdxyoTkvDtLFqjXxhEoALA\"]},\"src/interfaces/IERC20.sol\":{\"keccak256\":\"0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be\",\"dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA\"]},\"src/users/Actor.sol\":{\"keccak256\":\"0x6ad8911c2d305f1bac636ad070f00e47cb2912c78883ea24698030b41a39ccd3\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://917f42c979b5f2c9bad3cd2c5d34f8caec92282536e6f938e7e20dd1925c4843\",\"dweb:/ipfs/QmYmTcZ3oEDWPUnCy6BfrpRMMeMyhe7gF423HbNSPatXs5\"]},\"test/Utility.sol\":{\"keccak256\":\"0x99dbec5203c841f8f092ac42644aa9e24eb927767826dcdf06addc5d5cbea135\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ecd75e3b538d0eb4404ee763ae474c9e4e64cf1e0804795a6787cedef3c0eeda\",\"dweb:/ipfs/QmTwdFYFVDgVZpg3ebGcVr9vF5ffvcZtLzsdJnkRChxL7s\"]},\"test/Vesting.t.sol\":{\"keccak256\":\"0x241c9a12d15a20db74592da1255321925ef5953d658931dcbcae7557400af9ae\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e28b0f69282f6c26631e4af05335bdc5cd44b7e86038a4fe9a16e0e804d93ee7\",\"dweb:/ipfs/QmTvBmXt444gU33gkq75jCThDhXNmaYfRM986BJUCGN9kZ\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.17+commit.8df45f5f" @@ -1933,10 +1933,10 @@ "license": "MIT" }, "src/Vesting.sol": { - "keccak256": "0x9bbba0177c1e6e33919153caf168a978cea4140158713283ddf39e8f9efd5b4a", + "keccak256": "0x3fb59f7d29ccc67ec5aa7b9c064b73734c50c7a68a5f4cac138df7922dfc3356", "urls": [ - "bzz-raw://2b3e9f85c2c9b104be07aed03ae1f719d3a6712a8447fc37e1efd73e3c07dcd8", - "dweb:/ipfs/QmewoBQ8Uu8VRfVFuizmPYgsWNKFfaQQqaSDjMMNhNJzaC" + "bzz-raw://0fc8b6e747264c821ede1849cc1c257d97de3006a78b5de396a3837d81377907", + "dweb:/ipfs/QmU4HUzVvgQGUSS2vknorfoLMvfqvz1F5Whr4mW9x46w7w" ], "license": "UNLICENSED" }, @@ -1956,35 +1956,35 @@ ], "license": "MIT" }, - "src/interfaces/Interfaces.sol": { - "keccak256": "0x741b318f522ba8451f4a2e40afcf59e995484318fabe7c57adeba3124bbd7e04", + "src/interfaces/IERC20.sol": { + "keccak256": "0xc02c24f08d76ab1c38014886b0fc12abb234446b96e5e83b4a86f396c54fae5f", "urls": [ - "bzz-raw://dba0a37a10519080f892d5c8b87a0ec026ef73492195a901e49f74766b5915f7", - "dweb:/ipfs/QmduauRea8YdqJaMeHiYH2tRtbydoqgVirSaTzbXMoEjYX" + "bzz-raw://c052c7cedba3e37a9cc8885924d3592fb12a4a430f3137035015252954bb80be", + "dweb:/ipfs/QmYwdEzednrf6DioHv1vUFSEy6C4vSPZq9CY3pPiaHT2JA" ], "license": "GPL-3.0-or-later" }, "src/users/Actor.sol": { - "keccak256": "0x4d9d9176a043f8212d9f383afa33565fcc83845346ae77d6b4bd80a5ece31b5e", + "keccak256": "0x6ad8911c2d305f1bac636ad070f00e47cb2912c78883ea24698030b41a39ccd3", "urls": [ - "bzz-raw://6c9d789e1e106682d4ee38523b8b8af1b02903aba1079e5dc2ec31ecf709f96a", - "dweb:/ipfs/QmSuGiTD8dPDXBLU4B3EoJK2zyQz3MQ9GKYiWzPyJnasRb" + "bzz-raw://917f42c979b5f2c9bad3cd2c5d34f8caec92282536e6f938e7e20dd1925c4843", + "dweb:/ipfs/QmYmTcZ3oEDWPUnCy6BfrpRMMeMyhe7gF423HbNSPatXs5" ], "license": "AGPL-3.0-or-later" }, "test/Utility.sol": { - "keccak256": "0xcea126c8754daffe443e2328ce2424b7b3dcafec7f3bb73c1f85c1502849552f", + "keccak256": "0x99dbec5203c841f8f092ac42644aa9e24eb927767826dcdf06addc5d5cbea135", "urls": [ - "bzz-raw://386bb899985ba398a7e34cc5a15c99c73c3a55b4d40356aa01f1147a8b377775", - "dweb:/ipfs/QmSQE7R4iNQhVyNSWj9Gs839udCrTm2EiuvezJLuwS7vds" + "bzz-raw://ecd75e3b538d0eb4404ee763ae474c9e4e64cf1e0804795a6787cedef3c0eeda", + "dweb:/ipfs/QmTwdFYFVDgVZpg3ebGcVr9vF5ffvcZtLzsdJnkRChxL7s" ], "license": "AGPL-3.0-or-later" }, "test/Vesting.t.sol": { - "keccak256": "0x02f8343a68c319fb9bc7f4af32804b4ed81d71233cf64e2122e9f9ea846e9ca6", + "keccak256": "0x241c9a12d15a20db74592da1255321925ef5953d658931dcbcae7557400af9ae", "urls": [ - "bzz-raw://0a25cbe0d6551eb7f8427c3ff95ffed7872ed88b22be8ced21fd441247489089", - "dweb:/ipfs/QmREkZYB6NUpmUoo9Prpe9723FaA71K2xZHhqe3vniGuuq" + "bzz-raw://e28b0f69282f6c26631e4af05335bdc5cd44b7e86038a4fe9a16e0e804d93ee7", + "dweb:/ipfs/QmTvBmXt444gU33gkq75jCThDhXNmaYfRM986BJUCGN9kZ" ], "license": "UNLICENSED" } @@ -1993,82 +1993,82 @@ }, "ast": { "absolutePath": "test/Vesting.t.sol", - "id": 30102, + "id": 34324, "exportedSymbols": { "Actor": [ - 27329 + 30379 ], "DSTest": [ 1786 ], "Hevm": [ - 27348 + 31549 ], "IERC20": [ - 26369 + 29158 ], "StdAssertions": [ - 2671 + 2708 ], "StdChains": [ - 3207 + 3244 ], "StdCheats": [ - 5144 + 5181 ], "StdStorage": [ - 6051 + 6088 ], "StdUtils": [ - 8116 + 8153 ], "Test": [ - 8158 + 8195 ], "TestBase": [ 1843 ], "User": [ - 27356 + 31557 ], "Utility": [ - 27876 + 32080 ], "Vesting": [ - 26061 + 28096 ], "VestingTest": [ - 30101 + 34323 ], "Vm": [ - 9315 + 9352 ], "console": [ - 17379 + 17416 ], "console2": [ - 25475 + 25512 ], "stdError": [ - 5210 + 5247 ], "stdJson": [ - 5877 + 5914 ], "stdMath": [ - 6019 + 6056 ], "stdStorage": [ - 7485 + 7522 ] }, "nodeType": "SourceUnit", - "src": "40:21492:20", + "src": "40:21271:31", "nodes": [ { - "id": 27878, + "id": 32082, "nodeType": "PragmaDirective", - "src": "40:24:20", + "src": "40:24:31", "nodes": [], "literals": [ "solidity", @@ -2078,50 +2078,50 @@ ] }, { - "id": 27879, + "id": 32083, "nodeType": "ImportDirective", - "src": "68:39:20", + "src": "68:39:31", "nodes": [], "absolutePath": "lib/forge-std/src/Test.sol", "file": "../lib/forge-std/src/Test.sol", "nameLocation": "-1:-1:-1", - "scope": 30102, - "sourceUnit": 8159, + "scope": 34324, + "sourceUnit": 8196, "symbolAliases": [], "unitAlias": "" }, { - "id": 27880, + "id": 32084, "nodeType": "ImportDirective", - "src": "109:23:20", + "src": "109:23:31", "nodes": [], "absolutePath": "test/Utility.sol", "file": "./Utility.sol", "nameLocation": "-1:-1:-1", - "scope": 30102, - "sourceUnit": 27877, + "scope": 34324, + "sourceUnit": 32081, "symbolAliases": [], "unitAlias": "" }, { - "id": 27882, + "id": 32086, "nodeType": "ImportDirective", - "src": "134:45:20", + "src": "158:46:31", "nodes": [], "absolutePath": "src/Vesting.sol", "file": "../src/Vesting.sol", "nameLocation": "-1:-1:-1", - "scope": 30102, - "sourceUnit": 26062, + "scope": 34324, + "sourceUnit": 28097, "symbolAliases": [ { "foreign": { - "id": 27881, + "id": 32085, "name": "Vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26061, - "src": "143:7:20", + "referencedDeclaration": 28096, + "src": "167:7:31", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2130,57 +2130,57 @@ "unitAlias": "" }, { - "id": 30101, + "id": 34323, "nodeType": "ContractDefinition", - "src": "183:21347:20", + "src": "208:21101:31", "nodes": [ { - "id": 27889, + "id": 32093, "nodeType": "VariableDeclaration", - "src": "228:15:20", + "src": "253:15:31", "nodes": [], "constant": false, "mutability": "mutable", "name": "vesting", - "nameLocation": "236:7:20", - "scope": 30101, + "nameLocation": "261:7:31", + "scope": 34323, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" }, "typeName": { - "id": 27888, + "id": 32092, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27887, + "id": 32091, "name": "Vesting", "nameLocations": [ - "228:7:20" + "253:7:31" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26061, - "src": "228:7:20" + "referencedDeclaration": 28096, + "src": "253:7:31" }, - "referencedDeclaration": 26061, - "src": "228:7:20", + "referencedDeclaration": 28096, + "src": "253:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, "visibility": "internal" }, { - "id": 27914, + "id": 32115, "nodeType": "FunctionDefinition", - "src": "252:412:20", + "src": "277:210:31", "nodes": [], "body": { - "id": 27913, + "id": 32114, "nodeType": "Block", - "src": "276:388:20", + "src": "301:186:31", "nodes": [], "statements": [ { @@ -2188,18 +2188,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 27892, + "id": 32096, "name": "createActors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27546, - "src": "287:12:20", + "referencedDeclaration": 31750, + "src": "312:12:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 27893, + "id": 32097, "isConstant": false, "isLValue": false, "isPure": false, @@ -2208,34 +2208,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "287:14:20", + "src": "312:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27894, + "id": 32098, "nodeType": "ExpressionStatement", - "src": "287:14:20" + "src": "312:14:31" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 27895, + "id": 32099, "name": "setUpTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27627, - "src": "312:11:20", + "referencedDeclaration": 31831, + "src": "337:11:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 27896, + "id": 32100, "isConstant": false, "isLValue": false, "isPure": false, @@ -2244,33 +2244,33 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "312:13:20", + "src": "337:13:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27897, + "id": 32101, "nodeType": "ExpressionStatement", - "src": "312:13:20" + "src": "337:13:31" }, { "expression": { - "id": 27911, + "id": 32112, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 27898, + "id": 32102, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "374:7:20", + "referencedDeclaration": 32093, + "src": "399:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, @@ -2279,61 +2279,12 @@ "rightHandSide": { "arguments": [ { - "arguments": [ - { - "hexValue": "307863303065393443623636324333353230323832453666353731373231343030344137663236383838", - "id": 27904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "573:42:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0xc00e94Cb662C3520282E6f5717214004A7f26888" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 27903, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "565:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 27902, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "565:7:20", - "typeDescriptions": {} - } - }, - "id": 27905, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "565:51:20", - "tryCall": false, + "id": 32106, + "name": "FRAX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31586, + "src": "435:4:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2342,14 +2293,14 @@ { "arguments": [ { - "id": 27908, + "id": 32109, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "641:3:20", + "referencedDeclaration": 31568, + "src": "464:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -2357,30 +2308,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 27907, + "id": 32108, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "633:7:20", + "src": "456:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27906, + "id": 32107, "name": "address", "nodeType": "ElementaryTypeName", - "src": "633:7:20", + "src": "456:7:31", "typeDescriptions": {} } }, - "id": 27909, + "id": 32110, "isConstant": false, "isLValue": false, "isPure": false, @@ -2389,7 +2340,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "633:12:20", + "src": "456:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2408,39 +2359,39 @@ "typeString": "address" } ], - "id": 27901, + "id": 32105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "384:11:20", + "src": "409:11:31", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_address_$returns$_t_contract$_Vesting_$26061_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_address_$returns$_t_contract$_Vesting_$28096_$", "typeString": "function (address,address) returns (contract Vesting)" }, "typeName": { - "id": 27900, + "id": 32104, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 27899, + "id": 32103, "name": "Vesting", "nameLocations": [ - "388:7:20" + "413:7:31" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 26061, - "src": "388:7:20" + "referencedDeclaration": 28096, + "src": "413:7:31" }, - "referencedDeclaration": 26061, - "src": "388:7:20", + "referencedDeclaration": 28096, + "src": "413:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } }, - "id": 27910, + "id": 32111, "isConstant": false, "isLValue": false, "isPure": false, @@ -2449,22 +2400,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "384:272:20", + "src": "409:70:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "src": "374:282:20", + "src": "399:80:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 27912, + "id": 32113, "nodeType": "ExpressionStatement", - "src": "374:282:20" + "src": "399:80:31" } ] }, @@ -2473,33 +2424,33 @@ "kind": "function", "modifiers": [], "name": "setUp", - "nameLocation": "261:5:20", + "nameLocation": "286:5:31", "parameters": { - "id": 27890, + "id": 32094, "nodeType": "ParameterList", "parameters": [], - "src": "266:2:20" + "src": "291:2:31" }, "returnParameters": { - "id": 27891, + "id": 32095, "nodeType": "ParameterList", "parameters": [], - "src": "276:0:20" + "src": "301:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27942, + "id": 32140, "nodeType": "FunctionDefinition", - "src": "700:254:20", + "src": "523:207:31", "nodes": [], "body": { - "id": 27941, + "id": 32139, "nodeType": "Block", - "src": "742:212:20", + "src": "565:165:31", "nodes": [], "statements": [ { @@ -2510,33 +2461,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 27918, + "id": 32119, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "762:7:20", + "referencedDeclaration": 32093, + "src": "585:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 27919, + "id": 32120, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "770:10:20", + "memberLocation": "593:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "762:18:20", + "referencedDeclaration": 27505, + "src": "585:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 27920, + "id": 32121, "isConstant": false, "isLValue": false, "isPure": false, @@ -2545,7 +2496,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "762:20:20", + "src": "585:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2553,61 +2504,12 @@ } }, { - "arguments": [ - { - "hexValue": "307863303065393443623636324333353230323832453666353731373231343030344137663236383838", - "id": 27923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "798:42:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0xc00e94Cb662C3520282E6f5717214004A7f26888" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 27922, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "790:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 27921, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "790:7:20", - "typeDescriptions": {} - } - }, - "id": 27924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "790:51:20", - "tryCall": false, + "id": 32122, + "name": "FRAX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31586, + "src": "613:4:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2625,20 +2527,20 @@ "typeString": "address" } ], - "id": 27917, + "id": 32118, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -2651,13 +2553,13 @@ 1674 ], "referencedDeclaration": 320, - "src": "753:8:20", + "src": "576:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 27925, + "id": 32123, "isConstant": false, "isLValue": false, "isPure": false, @@ -2666,16 +2568,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "753:89:20", + "src": "576:42:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27926, + "id": 32124, "nodeType": "ExpressionStatement", - "src": "753:89:20" + "src": "576:42:31" }, { "expression": { @@ -2685,33 +2587,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 27928, + "id": 32126, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "862:7:20", + "referencedDeclaration": 32093, + "src": "638:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 27929, + "id": 32127, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "870:16:20", + "memberLocation": "646:16:31", "memberName": "vestingStartUnix", "nodeType": "MemberAccess", - "referencedDeclaration": 25488, - "src": "862:24:20", + "referencedDeclaration": 27508, + "src": "638:24:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 27930, + "id": 32128, "isConstant": false, "isLValue": false, "isPure": false, @@ -2720,7 +2622,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "862:26:20", + "src": "638:26:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2729,14 +2631,14 @@ }, { "hexValue": "30", - "id": 27931, + "id": 32129, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "890:1:20", + "src": "666:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2755,20 +2657,20 @@ "typeString": "int_const 0" } ], - "id": 27927, + "id": 32125, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -2781,13 +2683,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "853:8:20", + "src": "629:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 27932, + "id": 32130, "isConstant": false, "isLValue": false, "isPure": false, @@ -2796,16 +2698,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "853:39:20", + "src": "629:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27933, + "id": 32131, "nodeType": "ExpressionStatement", - "src": "853:39:20" + "src": "629:39:31" }, { "expression": { @@ -2815,33 +2717,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 27935, + "id": 32133, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "912:7:20", + "referencedDeclaration": 32093, + "src": "688:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 27936, + "id": 32134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "920:14:20", + "memberLocation": "696:14:31", "memberName": "vestingEnabled", "nodeType": "MemberAccess", - "referencedDeclaration": 25491, - "src": "912:22:20", + "referencedDeclaration": 27511, + "src": "688:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$", "typeString": "function () view external returns (bool)" } }, - "id": 27937, + "id": 32135, "isConstant": false, "isLValue": false, "isPure": false, @@ -2850,7 +2752,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "912:24:20", + "src": "688:24:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2859,14 +2761,14 @@ }, { "hexValue": "66616c7365", - "id": 27938, + "id": 32136, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "940:5:20", + "src": "716:5:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2885,20 +2787,20 @@ "typeString": "bool" } ], - "id": 27934, + "id": 32132, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -2910,14 +2812,14 @@ 1639, 1674 ], - "referencedDeclaration": 1974, - "src": "903:8:20", + "referencedDeclaration": 2011, + "src": "679:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, - "id": 27939, + "id": 32137, "isConstant": false, "isLValue": false, "isPure": false, @@ -2926,16 +2828,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "903:43:20", + "src": "679:43:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27940, + "id": 32138, "nodeType": "ExpressionStatement", - "src": "903:43:20" + "src": "679:43:31" } ] }, @@ -2944,40 +2846,40 @@ "kind": "function", "modifiers": [], "name": "test_vesting_init_state", - "nameLocation": "709:23:20", + "nameLocation": "532:23:31", "parameters": { - "id": 27915, + "id": 32116, "nodeType": "ParameterList", "parameters": [], - "src": "732:2:20" + "src": "555:2:31" }, "returnParameters": { - "id": 27916, + "id": 32117, "nodeType": "ParameterList", "parameters": [], - "src": "742:0:20" + "src": "565:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 27990, + "id": 32188, "nodeType": "FunctionDefinition", - "src": "1049:596:20", + "src": "825:596:31", "nodes": [], "body": { - "id": 27989, + "id": 32187, "nodeType": "Block", - "src": "1107:538:20", + "src": "883:538:31", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 27954, + "id": 32152, "isConstant": false, "isLValue": false, "isPure": false, @@ -2985,20 +2887,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1184:40:20", + "src": "960:40:31", "subExpression": { "arguments": [ { "arguments": [ { - "id": 27951, + "id": 32149, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "1215:7:20", + "referencedDeclaration": 32093, + "src": "991:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -3006,30 +2908,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 27950, + "id": 32148, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1207:7:20", + "src": "983:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27949, + "id": 32147, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1207:7:20", + "src": "983:7:31", "typeDescriptions": {} } }, - "id": 27952, + "id": 32150, "isConstant": false, "isLValue": false, "isPure": false, @@ -3038,7 +2940,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1207:16:20", + "src": "983:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3054,33 +2956,33 @@ } ], "expression": { - "id": 27947, + "id": 32145, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "1185:3:20", + "referencedDeclaration": 31571, + "src": "961:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 27948, + "id": 32146, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1189:17:20", + "memberLocation": "965:17:31", "memberName": "try_enableVesting", "nodeType": "MemberAccess", - "referencedDeclaration": 27182, - "src": "1185:21:20", + "referencedDeclaration": 30232, + "src": "961:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 27953, + "id": 32151, "isConstant": false, "isLValue": false, "isPure": false, @@ -3089,7 +2991,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1185:39:20", + "src": "961:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3109,18 +3011,18 @@ "typeString": "bool" } ], - "id": 27946, + "id": 32144, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "1177:6:20", + "src": "953:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 27955, + "id": 32153, "isConstant": false, "isLValue": false, "isPure": false, @@ -3129,22 +3031,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1177:48:20", + "src": "953:48:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27956, + "id": 32154, "nodeType": "ExpressionStatement", - "src": "1177:48:20" + "src": "953:48:31" }, { "expression": { "arguments": [ { - "id": 27965, + "id": 32163, "isConstant": false, "isLValue": false, "isPure": false, @@ -3152,20 +3054,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1304:40:20", + "src": "1080:40:31", "subExpression": { "arguments": [ { "arguments": [ { - "id": 27962, + "id": 32160, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "1335:7:20", + "referencedDeclaration": 32093, + "src": "1111:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -3173,30 +3075,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 27961, + "id": 32159, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1327:7:20", + "src": "1103:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27960, + "id": 32158, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1327:7:20", + "src": "1103:7:31", "typeDescriptions": {} } }, - "id": 27963, + "id": 32161, "isConstant": false, "isLValue": false, "isPure": false, @@ -3205,7 +3107,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1327:16:20", + "src": "1103:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3221,33 +3123,33 @@ } ], "expression": { - "id": 27958, + "id": 32156, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "1305:3:20", + "referencedDeclaration": 31565, + "src": "1081:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 27959, + "id": 32157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1309:17:20", + "memberLocation": "1085:17:31", "memberName": "try_enableVesting", "nodeType": "MemberAccess", - "referencedDeclaration": 27182, - "src": "1305:21:20", + "referencedDeclaration": 30232, + "src": "1081:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 27964, + "id": 32162, "isConstant": false, "isLValue": false, "isPure": false, @@ -3256,7 +3158,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1305:39:20", + "src": "1081:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3276,18 +3178,18 @@ "typeString": "bool" } ], - "id": 27957, + "id": 32155, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "1297:6:20", + "src": "1073:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 27966, + "id": 32164, "isConstant": false, "isLValue": false, "isPure": false, @@ -3296,16 +3198,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1297:48:20", + "src": "1073:48:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27967, + "id": 32165, "nodeType": "ExpressionStatement", - "src": "1297:48:20" + "src": "1073:48:31" }, { "expression": { @@ -3315,14 +3217,14 @@ { "arguments": [ { - "id": 27973, + "id": 32171, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "1470:7:20", + "referencedDeclaration": 32093, + "src": "1246:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -3330,30 +3232,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 27972, + "id": 32170, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1462:7:20", + "src": "1238:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27971, + "id": 32169, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1462:7:20", + "src": "1238:7:31", "typeDescriptions": {} } }, - "id": 27974, + "id": 32172, "isConstant": false, "isLValue": false, "isPure": false, @@ -3362,7 +3264,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1462:16:20", + "src": "1238:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3378,33 +3280,33 @@ } ], "expression": { - "id": 27969, + "id": 32167, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "1440:3:20", + "referencedDeclaration": 31568, + "src": "1216:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 27970, + "id": 32168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1444:17:20", + "memberLocation": "1220:17:31", "memberName": "try_enableVesting", "nodeType": "MemberAccess", - "referencedDeclaration": 27182, - "src": "1440:21:20", + "referencedDeclaration": 30232, + "src": "1216:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 27975, + "id": 32173, "isConstant": false, "isLValue": false, "isPure": false, @@ -3413,7 +3315,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1440:39:20", + "src": "1216:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3428,18 +3330,18 @@ "typeString": "bool" } ], - "id": 27968, + "id": 32166, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "1433:6:20", + "src": "1209:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 27976, + "id": 32174, "isConstant": false, "isLValue": false, "isPure": false, @@ -3448,22 +3350,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1433:47:20", + "src": "1209:47:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27977, + "id": 32175, "nodeType": "ExpressionStatement", - "src": "1433:47:20" + "src": "1209:47:31" }, { "expression": { "arguments": [ { - "id": 27986, + "id": 32184, "isConstant": false, "isLValue": false, "isPure": false, @@ -3471,20 +3373,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1596:40:20", + "src": "1372:40:31", "subExpression": { "arguments": [ { "arguments": [ { - "id": 27983, + "id": 32181, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "1627:7:20", + "referencedDeclaration": 32093, + "src": "1403:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -3492,30 +3394,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 27982, + "id": 32180, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1619:7:20", + "src": "1395:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 27981, + "id": 32179, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1619:7:20", + "src": "1395:7:31", "typeDescriptions": {} } }, - "id": 27984, + "id": 32182, "isConstant": false, "isLValue": false, "isPure": false, @@ -3524,7 +3426,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1619:16:20", + "src": "1395:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3540,33 +3442,33 @@ } ], "expression": { - "id": 27979, + "id": 32177, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "1597:3:20", + "referencedDeclaration": 31568, + "src": "1373:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 27980, + "id": 32178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1601:17:20", + "memberLocation": "1377:17:31", "memberName": "try_enableVesting", "nodeType": "MemberAccess", - "referencedDeclaration": 27182, - "src": "1597:21:20", + "referencedDeclaration": 30232, + "src": "1373:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 27985, + "id": 32183, "isConstant": false, "isLValue": false, "isPure": false, @@ -3575,7 +3477,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1597:39:20", + "src": "1373:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3595,18 +3497,18 @@ "typeString": "bool" } ], - "id": 27978, + "id": 32176, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "1589:6:20", + "src": "1365:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 27987, + "id": 32185, "isConstant": false, "isLValue": false, "isPure": false, @@ -3615,23 +3517,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1589:48:20", + "src": "1365:48:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 27988, + "id": 32186, "nodeType": "ExpressionStatement", - "src": "1589:48:20" + "src": "1365:48:31" } ] }, "documentation": { - "id": 27943, + "id": 32141, "nodeType": "StructuredDocumentation", - "src": "998:45:20", + "src": "774:45:31", "text": "@dev Verifies enableVesting restrictions." }, "functionSelector": "f4ceccba", @@ -3639,33 +3541,33 @@ "kind": "function", "modifiers": [], "name": "test_vesting_enableVesting_restrictions", - "nameLocation": "1058:39:20", + "nameLocation": "834:39:31", "parameters": { - "id": 27944, + "id": 32142, "nodeType": "ParameterList", "parameters": [], - "src": "1097:2:20" + "src": "873:2:31" }, "returnParameters": { - "id": 27945, + "id": 32143, "nodeType": "ParameterList", "parameters": [], - "src": "1107:0:20" + "src": "883:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 28034, + "id": 32232, "nodeType": "FunctionDefinition", - "src": "1705:443:20", + "src": "1481:443:31", "nodes": [], "body": { - "id": 28033, + "id": 32231, "nodeType": "Block", - "src": "1764:384:20", + "src": "1540:384:31", "nodes": [], "statements": [ { @@ -3676,33 +3578,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 27995, + "id": 32193, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "1813:7:20", + "referencedDeclaration": 32093, + "src": "1589:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 27996, + "id": 32194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1821:16:20", + "memberLocation": "1597:16:31", "memberName": "vestingStartUnix", "nodeType": "MemberAccess", - "referencedDeclaration": 25488, - "src": "1813:24:20", + "referencedDeclaration": 27508, + "src": "1589:24:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 27997, + "id": 32195, "isConstant": false, "isLValue": false, "isPure": false, @@ -3711,7 +3613,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1813:26:20", + "src": "1589:26:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3720,14 +3622,14 @@ }, { "hexValue": "30", - "id": 27998, + "id": 32196, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1841:1:20", + "src": "1617:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3746,20 +3648,20 @@ "typeString": "int_const 0" } ], - "id": 27994, + "id": 32192, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -3772,13 +3674,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "1804:8:20", + "src": "1580:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 27999, + "id": 32197, "isConstant": false, "isLValue": false, "isPure": false, @@ -3787,16 +3689,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1804:39:20", + "src": "1580:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28000, + "id": 32198, "nodeType": "ExpressionStatement", - "src": "1804:39:20" + "src": "1580:39:31" }, { "expression": { @@ -3806,33 +3708,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 28002, + "id": 32200, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "1863:7:20", + "referencedDeclaration": 32093, + "src": "1639:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28003, + "id": 32201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1871:14:20", + "memberLocation": "1647:14:31", "memberName": "vestingEnabled", "nodeType": "MemberAccess", - "referencedDeclaration": 25491, - "src": "1863:22:20", + "referencedDeclaration": 27511, + "src": "1639:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$", "typeString": "function () view external returns (bool)" } }, - "id": 28004, + "id": 32202, "isConstant": false, "isLValue": false, "isPure": false, @@ -3841,7 +3743,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1863:24:20", + "src": "1639:24:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3850,14 +3752,14 @@ }, { "hexValue": "66616c7365", - "id": 28005, + "id": 32203, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1891:5:20", + "src": "1667:5:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3876,20 +3778,20 @@ "typeString": "bool" } ], - "id": 28001, + "id": 32199, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -3901,14 +3803,14 @@ 1639, 1674 ], - "referencedDeclaration": 1974, - "src": "1854:8:20", + "referencedDeclaration": 2011, + "src": "1630:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, - "id": 28006, + "id": 32204, "isConstant": false, "isLValue": false, "isPure": false, @@ -3917,16 +3819,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1854:43:20", + "src": "1630:43:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28007, + "id": 32205, "nodeType": "ExpressionStatement", - "src": "1854:43:20" + "src": "1630:43:31" }, { "expression": { @@ -3936,14 +3838,14 @@ { "arguments": [ { - "id": 28013, + "id": 32211, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "1981:7:20", + "referencedDeclaration": 32093, + "src": "1757:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -3951,30 +3853,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28012, + "id": 32210, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1973:7:20", + "src": "1749:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28011, + "id": 32209, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1973:7:20", + "src": "1749:7:31", "typeDescriptions": {} } }, - "id": 28014, + "id": 32212, "isConstant": false, "isLValue": false, "isPure": false, @@ -3983,7 +3885,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1973:16:20", + "src": "1749:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3999,33 +3901,33 @@ } ], "expression": { - "id": 28009, + "id": 32207, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "1951:3:20", + "referencedDeclaration": 31568, + "src": "1727:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28010, + "id": 32208, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1955:17:20", + "memberLocation": "1731:17:31", "memberName": "try_enableVesting", "nodeType": "MemberAccess", - "referencedDeclaration": 27182, - "src": "1951:21:20", + "referencedDeclaration": 30232, + "src": "1727:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 28015, + "id": 32213, "isConstant": false, "isLValue": false, "isPure": false, @@ -4034,7 +3936,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1951:39:20", + "src": "1727:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4049,18 +3951,18 @@ "typeString": "bool" } ], - "id": 28008, + "id": 32206, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "1944:6:20", + "src": "1720:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28016, + "id": 32214, "isConstant": false, "isLValue": false, "isPure": false, @@ -4069,16 +3971,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1944:47:20", + "src": "1720:47:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28017, + "id": 32215, "nodeType": "ExpressionStatement", - "src": "1944:47:20" + "src": "1720:47:31" }, { "expression": { @@ -4088,33 +3990,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 28019, + "id": 32217, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "2043:7:20", + "referencedDeclaration": 32093, + "src": "1819:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28020, + "id": 32218, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2051:16:20", + "memberLocation": "1827:16:31", "memberName": "vestingStartUnix", "nodeType": "MemberAccess", - "referencedDeclaration": 25488, - "src": "2043:24:20", + "referencedDeclaration": 27508, + "src": "1819:24:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 28021, + "id": 32219, "isConstant": false, "isLValue": false, "isPure": false, @@ -4123,7 +4025,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2043:26:20", + "src": "1819:26:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4132,26 +4034,26 @@ }, { "expression": { - "id": 28022, + "id": 32220, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2071:5:20", + "src": "1847:5:31", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 28023, + "id": 32221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2077:9:20", + "memberLocation": "1853:9:31", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "2071:15:20", + "src": "1847:15:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4169,20 +4071,20 @@ "typeString": "uint256" } ], - "id": 28018, + "id": 32216, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -4195,13 +4097,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "2034:8:20", + "src": "1810:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28024, + "id": 32222, "isConstant": false, "isLValue": false, "isPure": false, @@ -4210,16 +4112,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2034:53:20", + "src": "1810:53:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28025, + "id": 32223, "nodeType": "ExpressionStatement", - "src": "2034:53:20" + "src": "1810:53:31" }, { "expression": { @@ -4229,33 +4131,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 28027, + "id": 32225, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "2107:7:20", + "referencedDeclaration": 32093, + "src": "1883:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28028, + "id": 32226, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2115:14:20", + "memberLocation": "1891:14:31", "memberName": "vestingEnabled", "nodeType": "MemberAccess", - "referencedDeclaration": 25491, - "src": "2107:22:20", + "referencedDeclaration": 27511, + "src": "1883:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$", "typeString": "function () view external returns (bool)" } }, - "id": 28029, + "id": 32227, "isConstant": false, "isLValue": false, "isPure": false, @@ -4264,7 +4166,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2107:24:20", + "src": "1883:24:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4273,14 +4175,14 @@ }, { "hexValue": "74727565", - "id": 28030, + "id": 32228, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2135:4:20", + "src": "1911:4:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4299,20 +4201,20 @@ "typeString": "bool" } ], - "id": 28026, + "id": 32224, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -4324,14 +4226,14 @@ 1639, 1674 ], - "referencedDeclaration": 1974, - "src": "2098:8:20", + "referencedDeclaration": 2011, + "src": "1874:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, - "id": 28031, + "id": 32229, "isConstant": false, "isLValue": false, "isPure": false, @@ -4340,23 +4242,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2098:42:20", + "src": "1874:42:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28032, + "id": 32230, "nodeType": "ExpressionStatement", - "src": "2098:42:20" + "src": "1874:42:31" } ] }, "documentation": { - "id": 27991, + "id": 32189, "nodeType": "StructuredDocumentation", - "src": "1653:46:20", + "src": "1429:46:31", "text": "@dev Verifies enableVesting state changes." }, "functionSelector": "5f18f116", @@ -4364,40 +4266,40 @@ "kind": "function", "modifiers": [], "name": "test_vesting_enableVesting_state_changes", - "nameLocation": "1714:40:20", + "nameLocation": "1490:40:31", "parameters": { - "id": 27992, + "id": 32190, "nodeType": "ParameterList", "parameters": [], - "src": "1754:2:20" + "src": "1530:2:31" }, "returnParameters": { - "id": 27993, + "id": 32191, "nodeType": "ParameterList", "parameters": [], - "src": "1764:0:20" + "src": "1540:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 28126, + "id": 32324, "nodeType": "FunctionDefinition", - "src": "2243:967:20", + "src": "2019:967:31", "nodes": [], "body": { - "id": 28125, + "id": 32323, "nodeType": "Block", - "src": "2301:909:20", + "src": "2077:909:31", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 28047, + "id": 32245, "isConstant": false, "isLValue": false, "isPure": false, @@ -4405,20 +4307,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2378:46:20", + "src": "2154:46:31", "subExpression": { "arguments": [ { "arguments": [ { - "id": 28043, + "id": 32241, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "2409:7:20", + "referencedDeclaration": 32093, + "src": "2185:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -4426,30 +4328,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28042, + "id": 32240, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2401:7:20", + "src": "2177:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28041, + "id": 32239, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2401:7:20", + "src": "2177:7:31", "typeDescriptions": {} } }, - "id": 28044, + "id": 32242, "isConstant": false, "isLValue": false, "isPure": false, @@ -4458,7 +4360,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2401:16:20", + "src": "2177:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -4466,12 +4368,12 @@ } }, { - "id": 28045, + "id": 32243, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27373, - "src": "2419:4:20", + "referencedDeclaration": 31574, + "src": "2195:4:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4490,33 +4392,33 @@ } ], "expression": { - "id": 28039, + "id": 32237, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "2379:3:20", + "referencedDeclaration": 31571, + "src": "2155:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28040, + "id": 32238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2383:17:20", + "memberLocation": "2159:17:31", "memberName": "try_withdrawErc20", "nodeType": "MemberAccess", - "referencedDeclaration": 27211, - "src": "2379:21:20", + "referencedDeclaration": 30261, + "src": "2155:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) external returns (bool)" } }, - "id": 28046, + "id": 32244, "isConstant": false, "isLValue": false, "isPure": false, @@ -4525,7 +4427,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2379:45:20", + "src": "2155:45:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4545,18 +4447,18 @@ "typeString": "bool" } ], - "id": 28038, + "id": 32236, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "2371:6:20", + "src": "2147:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28048, + "id": 32246, "isConstant": false, "isLValue": false, "isPure": false, @@ -4565,22 +4467,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2371:54:20", + "src": "2147:54:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28049, + "id": 32247, "nodeType": "ExpressionStatement", - "src": "2371:54:20" + "src": "2147:54:31" }, { "expression": { "arguments": [ { - "id": 28059, + "id": 32257, "isConstant": false, "isLValue": false, "isPure": false, @@ -4588,20 +4490,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2504:46:20", + "src": "2280:46:31", "subExpression": { "arguments": [ { "arguments": [ { - "id": 28055, + "id": 32253, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "2535:7:20", + "referencedDeclaration": 32093, + "src": "2311:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -4609,30 +4511,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28054, + "id": 32252, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2527:7:20", + "src": "2303:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28053, + "id": 32251, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2527:7:20", + "src": "2303:7:31", "typeDescriptions": {} } }, - "id": 28056, + "id": 32254, "isConstant": false, "isLValue": false, "isPure": false, @@ -4641,7 +4543,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2527:16:20", + "src": "2303:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -4649,12 +4551,12 @@ } }, { - "id": 28057, + "id": 32255, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27373, - "src": "2545:4:20", + "referencedDeclaration": 31574, + "src": "2321:4:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4673,33 +4575,33 @@ } ], "expression": { - "id": 28051, + "id": 32249, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "2505:3:20", + "referencedDeclaration": 31565, + "src": "2281:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28052, + "id": 32250, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2509:17:20", + "memberLocation": "2285:17:31", "memberName": "try_withdrawErc20", "nodeType": "MemberAccess", - "referencedDeclaration": 27211, - "src": "2505:21:20", + "referencedDeclaration": 30261, + "src": "2281:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) external returns (bool)" } }, - "id": 28058, + "id": 32256, "isConstant": false, "isLValue": false, "isPure": false, @@ -4708,7 +4610,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2505:45:20", + "src": "2281:45:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4728,18 +4630,18 @@ "typeString": "bool" } ], - "id": 28050, + "id": 32248, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "2497:6:20", + "src": "2273:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28060, + "id": 32258, "isConstant": false, "isLValue": false, "isPure": false, @@ -4748,22 +4650,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2497:54:20", + "src": "2273:54:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28061, + "id": 32259, "nodeType": "ExpressionStatement", - "src": "2497:54:20" + "src": "2273:54:31" }, { "expression": { "arguments": [ { - "id": 28071, + "id": 32269, "isConstant": false, "isLValue": false, "isPure": false, @@ -4771,20 +4673,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2635:46:20", + "src": "2411:46:31", "subExpression": { "arguments": [ { "arguments": [ { - "id": 28067, + "id": 32265, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "2666:7:20", + "referencedDeclaration": 32093, + "src": "2442:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -4792,30 +4694,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28066, + "id": 32264, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2658:7:20", + "src": "2434:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28065, + "id": 32263, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2658:7:20", + "src": "2434:7:31", "typeDescriptions": {} } }, - "id": 28068, + "id": 32266, "isConstant": false, "isLValue": false, "isPure": false, @@ -4824,7 +4726,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2658:16:20", + "src": "2434:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -4832,12 +4734,12 @@ } }, { - "id": 28069, + "id": 32267, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27373, - "src": "2676:4:20", + "referencedDeclaration": 31574, + "src": "2452:4:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4856,33 +4758,33 @@ } ], "expression": { - "id": 28063, + "id": 32261, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "2636:3:20", + "referencedDeclaration": 31568, + "src": "2412:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28064, + "id": 32262, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2640:17:20", + "memberLocation": "2416:17:31", "memberName": "try_withdrawErc20", "nodeType": "MemberAccess", - "referencedDeclaration": 27211, - "src": "2636:21:20", + "referencedDeclaration": 30261, + "src": "2412:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) external returns (bool)" } }, - "id": 28070, + "id": 32268, "isConstant": false, "isLValue": false, "isPure": false, @@ -4891,7 +4793,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2636:45:20", + "src": "2412:45:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4911,18 +4813,18 @@ "typeString": "bool" } ], - "id": 28062, + "id": 32260, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "2628:6:20", + "src": "2404:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28072, + "id": 32270, "isConstant": false, "isLValue": false, "isPure": false, @@ -4931,22 +4833,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2628:54:20", + "src": "2404:54:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28073, + "id": 32271, "nodeType": "ExpressionStatement", - "src": "2628:54:20" + "src": "2404:54:31" }, { "expression": { "arguments": [ { - "id": 28085, + "id": 32283, "isConstant": false, "isLValue": false, "isPure": false, @@ -4954,20 +4856,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2762:62:20", + "src": "2538:62:31", "subExpression": { "arguments": [ { "arguments": [ { - "id": 28079, + "id": 32277, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "2793:7:20", + "referencedDeclaration": 32093, + "src": "2569:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -4975,30 +4877,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28078, + "id": 32276, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2785:7:20", + "src": "2561:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28077, + "id": 32275, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2785:7:20", + "src": "2561:7:31", "typeDescriptions": {} } }, - "id": 28080, + "id": 32278, "isConstant": false, "isLValue": false, "isPure": false, @@ -5007,7 +4909,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2785:16:20", + "src": "2561:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5019,33 +4921,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 28081, + "id": 32279, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "2803:7:20", + "referencedDeclaration": 32093, + "src": "2579:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28082, + "id": 32280, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2811:10:20", + "memberLocation": "2587:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "2803:18:20", + "referencedDeclaration": 27505, + "src": "2579:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 28083, + "id": 32281, "isConstant": false, "isLValue": false, "isPure": false, @@ -5054,7 +4956,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2803:20:20", + "src": "2579:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5074,33 +4976,33 @@ } ], "expression": { - "id": 28075, + "id": 32273, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "2763:3:20", + "referencedDeclaration": 31568, + "src": "2539:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28076, + "id": 32274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2767:17:20", + "memberLocation": "2543:17:31", "memberName": "try_withdrawErc20", "nodeType": "MemberAccess", - "referencedDeclaration": 27211, - "src": "2763:21:20", + "referencedDeclaration": 30261, + "src": "2539:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) external returns (bool)" } }, - "id": 28084, + "id": 32282, "isConstant": false, "isLValue": false, "isPure": false, @@ -5109,7 +5011,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2763:61:20", + "src": "2539:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5129,18 +5031,18 @@ "typeString": "bool" } ], - "id": 28074, + "id": 32272, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "2755:6:20", + "src": "2531:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28086, + "id": 32284, "isConstant": false, "isLValue": false, "isPure": false, @@ -5149,22 +5051,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2755:70:20", + "src": "2531:70:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28087, + "id": 32285, "nodeType": "ExpressionStatement", - "src": "2755:70:20" + "src": "2531:70:31" }, { "expression": { "arguments": [ { - "id": 28100, + "id": 32298, "isConstant": false, "isLValue": false, "isPure": false, @@ -5172,20 +5074,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2903:52:20", + "src": "2679:52:31", "subExpression": { "arguments": [ { "arguments": [ { - "id": 28093, + "id": 32291, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "2934:7:20", + "referencedDeclaration": 32093, + "src": "2710:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -5193,30 +5095,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28092, + "id": 32290, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2926:7:20", + "src": "2702:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28091, + "id": 32289, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2926:7:20", + "src": "2702:7:31", "typeDescriptions": {} } }, - "id": 28094, + "id": 32292, "isConstant": false, "isLValue": false, "isPure": false, @@ -5225,7 +5127,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2926:16:20", + "src": "2702:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5236,14 +5138,14 @@ "arguments": [ { "hexValue": "30", - "id": 28097, + "id": 32295, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2952:1:20", + "src": "2728:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -5258,26 +5160,26 @@ "typeString": "int_const 0" } ], - "id": 28096, + "id": 32294, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2944:7:20", + "src": "2720:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28095, + "id": 32293, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2944:7:20", + "src": "2720:7:31", "typeDescriptions": {} } }, - "id": 28098, + "id": 32296, "isConstant": false, "isLValue": false, "isPure": true, @@ -5286,7 +5188,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2944:10:20", + "src": "2720:10:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5306,33 +5208,33 @@ } ], "expression": { - "id": 28089, + "id": 32287, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "2904:3:20", + "referencedDeclaration": 31568, + "src": "2680:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28090, + "id": 32288, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2908:17:20", + "memberLocation": "2684:17:31", "memberName": "try_withdrawErc20", "nodeType": "MemberAccess", - "referencedDeclaration": 27211, - "src": "2904:21:20", + "referencedDeclaration": 30261, + "src": "2680:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) external returns (bool)" } }, - "id": 28099, + "id": 32297, "isConstant": false, "isLValue": false, "isPure": false, @@ -5341,7 +5243,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2904:51:20", + "src": "2680:51:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5361,18 +5263,18 @@ "typeString": "bool" } ], - "id": 28088, + "id": 32286, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "2896:6:20", + "src": "2672:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28101, + "id": 32299, "isConstant": false, "isLValue": false, "isPure": false, @@ -5381,27 +5283,27 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2896:60:20", + "src": "2672:60:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28102, + "id": 32300, "nodeType": "ExpressionStatement", - "src": "2896:60:20" + "src": "2672:60:31" }, { "expression": { "arguments": [ { - "id": 28104, + "id": 32302, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27373, - "src": "3024:4:20", + "referencedDeclaration": 31574, + "src": "2800:4:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5410,14 +5312,14 @@ { "arguments": [ { - "id": 28107, + "id": 32305, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "3038:7:20", + "referencedDeclaration": 32093, + "src": "2814:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -5425,30 +5327,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28106, + "id": 32304, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3030:7:20", + "src": "2806:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28105, + "id": 32303, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3030:7:20", + "src": "2806:7:31", "typeDescriptions": {} } }, - "id": 28108, + "id": 32306, "isConstant": false, "isLValue": false, "isPure": false, @@ -5457,7 +5359,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3030:16:20", + "src": "2806:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5469,21 +5371,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 28111, + "id": 32309, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "313030", - "id": 28109, + "id": 32307, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3048:3:20", + "src": "2824:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" @@ -5493,18 +5395,18 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 28110, + "id": 32308, "name": "USD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27441, - "src": "3054:3:20", + "referencedDeclaration": 31645, + "src": "2830:3:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3048:9:20", + "src": "2824:9:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5526,22 +5428,22 @@ "typeString": "uint256" } ], - "id": 28103, + "id": 32301, "name": "deal", "nodeType": "Identifier", "overloadedDeclarations": [ - 5023, - 5040, - 5143 + 5060, + 5077, + 5180 ], - "referencedDeclaration": 5040, - "src": "3019:4:20", + "referencedDeclaration": 5077, + "src": "2795:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 28112, + "id": 32310, "isConstant": false, "isLValue": false, "isPure": false, @@ -5550,16 +5452,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3019:39:20", + "src": "2795:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28113, + "id": 32311, "nodeType": "ExpressionStatement", - "src": "3019:39:20" + "src": "2795:39:31" }, { "expression": { @@ -5569,14 +5471,14 @@ { "arguments": [ { - "id": 28119, + "id": 32317, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "3186:7:20", + "referencedDeclaration": 32093, + "src": "2962:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -5584,30 +5486,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28118, + "id": 32316, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3178:7:20", + "src": "2954:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28117, + "id": 32315, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3178:7:20", + "src": "2954:7:31", "typeDescriptions": {} } }, - "id": 28120, + "id": 32318, "isConstant": false, "isLValue": false, "isPure": false, @@ -5616,7 +5518,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3178:16:20", + "src": "2954:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5624,12 +5526,12 @@ } }, { - "id": 28121, + "id": 32319, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27373, - "src": "3196:4:20", + "referencedDeclaration": 31574, + "src": "2972:4:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5648,33 +5550,33 @@ } ], "expression": { - "id": 28115, + "id": 32313, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "3156:3:20", + "referencedDeclaration": 31568, + "src": "2932:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28116, + "id": 32314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3160:17:20", + "memberLocation": "2936:17:31", "memberName": "try_withdrawErc20", "nodeType": "MemberAccess", - "referencedDeclaration": 27211, - "src": "3156:21:20", + "referencedDeclaration": 30261, + "src": "2932:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) external returns (bool)" } }, - "id": 28122, + "id": 32320, "isConstant": false, "isLValue": false, "isPure": false, @@ -5683,7 +5585,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3156:45:20", + "src": "2932:45:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5698,18 +5600,18 @@ "typeString": "bool" } ], - "id": 28114, + "id": 32312, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "3149:6:20", + "src": "2925:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28123, + "id": 32321, "isConstant": false, "isLValue": false, "isPure": false, @@ -5718,23 +5620,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3149:53:20", + "src": "2925:53:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28124, + "id": 32322, "nodeType": "ExpressionStatement", - "src": "3149:53:20" + "src": "2925:53:31" } ] }, "documentation": { - "id": 28035, + "id": 32233, "nodeType": "StructuredDocumentation", - "src": "2192:45:20", + "src": "1968:45:31", "text": "@dev Verifies withdrawErc20 restrictions." }, "functionSelector": "65dfbcb3", @@ -5742,45 +5644,45 @@ "kind": "function", "modifiers": [], "name": "test_vesting_withdrawErc20_restrictions", - "nameLocation": "2252:39:20", + "nameLocation": "2028:39:31", "parameters": { - "id": 28036, + "id": 32234, "nodeType": "ParameterList", "parameters": [], - "src": "2291:2:20" + "src": "2067:2:31" }, "returnParameters": { - "id": 28037, + "id": 32235, "nodeType": "ParameterList", "parameters": [], - "src": "2301:0:20" + "src": "2077:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 28209, + "id": 32407, "nodeType": "FunctionDefinition", - "src": "3270:563:20", + "src": "3046:563:31", "nodes": [], "body": { - "id": 28208, + "id": 32406, "nodeType": "Block", - "src": "3329:504:20", + "src": "3105:504:31", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 28131, + "id": 32329, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27373, - "src": "3345:4:20", + "referencedDeclaration": 31574, + "src": "3121:4:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5789,14 +5691,14 @@ { "arguments": [ { - "id": 28134, + "id": 32332, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "3359:7:20", + "referencedDeclaration": 32093, + "src": "3135:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -5804,30 +5706,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28133, + "id": 32331, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3351:7:20", + "src": "3127:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28132, + "id": 32330, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3351:7:20", + "src": "3127:7:31", "typeDescriptions": {} } }, - "id": 28135, + "id": 32333, "isConstant": false, "isLValue": false, "isPure": false, @@ -5836,7 +5738,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3351:16:20", + "src": "3127:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5848,21 +5750,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 28138, + "id": 32336, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "313030", - "id": 28136, + "id": 32334, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3369:3:20", + "src": "3145:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" @@ -5872,18 +5774,18 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 28137, + "id": 32335, "name": "USD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27441, - "src": "3375:3:20", + "referencedDeclaration": 31645, + "src": "3151:3:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3369:9:20", + "src": "3145:9:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5905,22 +5807,22 @@ "typeString": "uint256" } ], - "id": 28130, + "id": 32328, "name": "deal", "nodeType": "Identifier", "overloadedDeclarations": [ - 5023, - 5040, - 5143 + 5060, + 5077, + 5180 ], - "referencedDeclaration": 5040, - "src": "3340:4:20", + "referencedDeclaration": 5077, + "src": "3116:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 28139, + "id": 32337, "isConstant": false, "isLValue": false, "isPure": false, @@ -5929,16 +5831,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3340:39:20", + "src": "3116:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28140, + "id": 32338, "nodeType": "ExpressionStatement", - "src": "3340:39:20" + "src": "3116:39:31" }, { "expression": { @@ -5948,14 +5850,14 @@ { "arguments": [ { - "id": 28148, + "id": 32346, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "3460:7:20", + "referencedDeclaration": 32093, + "src": "3236:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -5963,30 +5865,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28147, + "id": 32345, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3452:7:20", + "src": "3228:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28146, + "id": 32344, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3452:7:20", + "src": "3228:7:31", "typeDescriptions": {} } }, - "id": 28149, + "id": 32347, "isConstant": false, "isLValue": false, "isPure": false, @@ -5995,7 +5897,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3452:16:20", + "src": "3228:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -6013,12 +5915,12 @@ "expression": { "arguments": [ { - "id": 28143, + "id": 32341, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27373, - "src": "3436:4:20", + "referencedDeclaration": 31574, + "src": "3212:4:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6032,18 +5934,18 @@ "typeString": "address" } ], - "id": 28142, + "id": 32340, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "3429:6:20", + "referencedDeclaration": 29158, + "src": "3205:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 28144, + "id": 32342, "isConstant": false, "isLValue": false, "isPure": true, @@ -6052,29 +5954,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3429:12:20", + "src": "3205:12:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 28145, + "id": 32343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3442:9:20", + "memberLocation": "3218:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "3429:22:20", + "referencedDeclaration": 29097, + "src": "3205:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 28150, + "id": 32348, "isConstant": false, "isLValue": false, "isPure": false, @@ -6083,7 +5985,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3429:40:20", + "src": "3205:40:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6095,21 +5997,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 28153, + "id": 32351, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "313030", - "id": 28151, + "id": 32349, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3471:3:20", + "src": "3247:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" @@ -6119,18 +6021,18 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 28152, + "id": 32350, "name": "USD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27441, - "src": "3477:3:20", + "referencedDeclaration": 31645, + "src": "3253:3:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3471:9:20", + "src": "3247:9:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6148,20 +6050,20 @@ "typeString": "uint256" } ], - "id": 28141, + "id": 32339, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -6174,13 +6076,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "3420:8:20", + "src": "3196:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28154, + "id": 32352, "isConstant": false, "isLValue": false, "isPure": false, @@ -6189,16 +6091,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3420:61:20", + "src": "3196:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28155, + "id": 32353, "nodeType": "ExpressionStatement", - "src": "3420:61:20" + "src": "3196:61:31" }, { "expression": { @@ -6208,14 +6110,14 @@ { "arguments": [ { - "id": 28163, + "id": 32361, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "3532:3:20", + "referencedDeclaration": 31568, + "src": "3308:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -6223,30 +6125,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28162, + "id": 32360, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3524:7:20", + "src": "3300:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28161, + "id": 32359, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3524:7:20", + "src": "3300:7:31", "typeDescriptions": {} } }, - "id": 28164, + "id": 32362, "isConstant": false, "isLValue": false, "isPure": false, @@ -6255,7 +6157,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3524:12:20", + "src": "3300:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -6273,12 +6175,12 @@ "expression": { "arguments": [ { - "id": 28158, + "id": 32356, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27373, - "src": "3508:4:20", + "referencedDeclaration": 31574, + "src": "3284:4:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6292,18 +6194,18 @@ "typeString": "address" } ], - "id": 28157, + "id": 32355, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "3501:6:20", + "referencedDeclaration": 29158, + "src": "3277:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 28159, + "id": 32357, "isConstant": false, "isLValue": false, "isPure": true, @@ -6312,29 +6214,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3501:12:20", + "src": "3277:12:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 28160, + "id": 32358, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3514:9:20", + "memberLocation": "3290:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "3501:22:20", + "referencedDeclaration": 29097, + "src": "3277:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 28165, + "id": 32363, "isConstant": false, "isLValue": false, "isPure": false, @@ -6343,7 +6245,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3501:36:20", + "src": "3277:36:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6352,14 +6254,14 @@ }, { "hexValue": "30", - "id": 28166, + "id": 32364, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3543:1:20", + "src": "3319:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -6378,20 +6280,20 @@ "typeString": "int_const 0" } ], - "id": 28156, + "id": 32354, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -6404,13 +6306,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "3492:8:20", + "src": "3268:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28167, + "id": 32365, "isConstant": false, "isLValue": false, "isPure": false, @@ -6419,16 +6321,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3492:53:20", + "src": "3268:53:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28168, + "id": 32366, "nodeType": "ExpressionStatement", - "src": "3492:53:20" + "src": "3268:53:31" }, { "expression": { @@ -6438,14 +6340,14 @@ { "arguments": [ { - "id": 28174, + "id": 32372, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "3642:7:20", + "referencedDeclaration": 32093, + "src": "3418:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -6453,30 +6355,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28173, + "id": 32371, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3634:7:20", + "src": "3410:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28172, + "id": 32370, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3634:7:20", + "src": "3410:7:31", "typeDescriptions": {} } }, - "id": 28175, + "id": 32373, "isConstant": false, "isLValue": false, "isPure": false, @@ -6485,7 +6387,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3634:16:20", + "src": "3410:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -6493,12 +6395,12 @@ } }, { - "id": 28176, + "id": 32374, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27373, - "src": "3652:4:20", + "referencedDeclaration": 31574, + "src": "3428:4:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6517,33 +6419,33 @@ } ], "expression": { - "id": 28170, + "id": 32368, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "3612:3:20", + "referencedDeclaration": 31568, + "src": "3388:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28171, + "id": 32369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3616:17:20", + "memberLocation": "3392:17:31", "memberName": "try_withdrawErc20", "nodeType": "MemberAccess", - "referencedDeclaration": 27211, - "src": "3612:21:20", + "referencedDeclaration": 30261, + "src": "3388:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) external returns (bool)" } }, - "id": 28177, + "id": 32375, "isConstant": false, "isLValue": false, "isPure": false, @@ -6552,7 +6454,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3612:45:20", + "src": "3388:45:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6567,18 +6469,18 @@ "typeString": "bool" } ], - "id": 28169, + "id": 32367, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "3605:6:20", + "src": "3381:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28178, + "id": 32376, "isConstant": false, "isLValue": false, "isPure": false, @@ -6587,16 +6489,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3605:53:20", + "src": "3381:53:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28179, + "id": 32377, "nodeType": "ExpressionStatement", - "src": "3605:53:20" + "src": "3381:53:31" }, { "expression": { @@ -6606,14 +6508,14 @@ { "arguments": [ { - "id": 28187, + "id": 32385, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "3740:7:20", + "referencedDeclaration": 32093, + "src": "3516:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -6621,30 +6523,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28186, + "id": 32384, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3732:7:20", + "src": "3508:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28185, + "id": 32383, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3732:7:20", + "src": "3508:7:31", "typeDescriptions": {} } }, - "id": 28188, + "id": 32386, "isConstant": false, "isLValue": false, "isPure": false, @@ -6653,7 +6555,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3732:16:20", + "src": "3508:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -6671,12 +6573,12 @@ "expression": { "arguments": [ { - "id": 28182, + "id": 32380, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27373, - "src": "3716:4:20", + "referencedDeclaration": 31574, + "src": "3492:4:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6690,18 +6592,18 @@ "typeString": "address" } ], - "id": 28181, + "id": 32379, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "3709:6:20", + "referencedDeclaration": 29158, + "src": "3485:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 28183, + "id": 32381, "isConstant": false, "isLValue": false, "isPure": true, @@ -6710,29 +6612,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3709:12:20", + "src": "3485:12:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 28184, + "id": 32382, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3722:9:20", + "memberLocation": "3498:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "3709:22:20", + "referencedDeclaration": 29097, + "src": "3485:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 28189, + "id": 32387, "isConstant": false, "isLValue": false, "isPure": false, @@ -6741,7 +6643,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3709:40:20", + "src": "3485:40:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6750,14 +6652,14 @@ }, { "hexValue": "30", - "id": 28190, + "id": 32388, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3751:1:20", + "src": "3527:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -6776,20 +6678,20 @@ "typeString": "int_const 0" } ], - "id": 28180, + "id": 32378, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -6802,13 +6704,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "3700:8:20", + "src": "3476:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28191, + "id": 32389, "isConstant": false, "isLValue": false, "isPure": false, @@ -6817,16 +6719,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3700:53:20", + "src": "3476:53:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28192, + "id": 32390, "nodeType": "ExpressionStatement", - "src": "3700:53:20" + "src": "3476:53:31" }, { "expression": { @@ -6836,14 +6738,14 @@ { "arguments": [ { - "id": 28200, + "id": 32398, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "3804:3:20", + "referencedDeclaration": 31568, + "src": "3580:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -6851,30 +6753,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28199, + "id": 32397, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3796:7:20", + "src": "3572:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28198, + "id": 32396, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3796:7:20", + "src": "3572:7:31", "typeDescriptions": {} } }, - "id": 28201, + "id": 32399, "isConstant": false, "isLValue": false, "isPure": false, @@ -6883,7 +6785,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3796:12:20", + "src": "3572:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -6901,12 +6803,12 @@ "expression": { "arguments": [ { - "id": 28195, + "id": 32393, "name": "USDC", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27373, - "src": "3780:4:20", + "referencedDeclaration": 31574, + "src": "3556:4:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6920,18 +6822,18 @@ "typeString": "address" } ], - "id": 28194, + "id": 32392, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "3773:6:20", + "referencedDeclaration": 29158, + "src": "3549:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 28196, + "id": 32394, "isConstant": false, "isLValue": false, "isPure": true, @@ -6940,29 +6842,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3773:12:20", + "src": "3549:12:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 28197, + "id": 32395, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3786:9:20", + "memberLocation": "3562:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "3773:22:20", + "referencedDeclaration": 29097, + "src": "3549:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 28202, + "id": 32400, "isConstant": false, "isLValue": false, "isPure": false, @@ -6971,7 +6873,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3773:36:20", + "src": "3549:36:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6983,21 +6885,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 28205, + "id": 32403, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "313030", - "id": 28203, + "id": 32401, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3815:3:20", + "src": "3591:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" @@ -7007,18 +6909,18 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 28204, + "id": 32402, "name": "USD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27441, - "src": "3821:3:20", + "referencedDeclaration": 31645, + "src": "3597:3:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3815:9:20", + "src": "3591:9:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7036,20 +6938,20 @@ "typeString": "uint256" } ], - "id": 28193, + "id": 32391, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -7062,13 +6964,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "3764:8:20", + "src": "3540:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28206, + "id": 32404, "isConstant": false, "isLValue": false, "isPure": false, @@ -7077,23 +6979,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3764:61:20", + "src": "3540:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28207, + "id": 32405, "nodeType": "ExpressionStatement", - "src": "3764:61:20" + "src": "3540:61:31" } ] }, "documentation": { - "id": 28127, + "id": 32325, "nodeType": "StructuredDocumentation", - "src": "3218:46:20", + "src": "2994:46:31", "text": "@dev Verifies withdrawErc20 state changes." }, "functionSelector": "b1857efe", @@ -7101,40 +7003,40 @@ "kind": "function", "modifiers": [], "name": "test_vesting_withdrawErc20_state_changes", - "nameLocation": "3279:40:20", + "nameLocation": "3055:40:31", "parameters": { - "id": 28128, + "id": 32326, "nodeType": "ParameterList", "parameters": [], - "src": "3319:2:20" + "src": "3095:2:31" }, "returnParameters": { - "id": 28129, + "id": 32327, "nodeType": "ParameterList", "parameters": [], - "src": "3329:0:20" + "src": "3105:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 28323, + "id": 32521, "nodeType": "FunctionDefinition", - "src": "3923:1165:20", + "src": "3699:1165:31", "nodes": [], "body": { - "id": 28322, + "id": 32520, "nodeType": "Block", - "src": "3979:1109:20", + "src": "3755:1109:31", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 28226, + "id": 32424, "isConstant": false, "isLValue": false, "isPure": false, @@ -7142,20 +7044,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4064:62:20", + "src": "3840:62:31", "subExpression": { "arguments": [ { "arguments": [ { - "id": 28218, + "id": 32416, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "4093:7:20", + "referencedDeclaration": 32093, + "src": "3869:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -7163,30 +7065,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28217, + "id": 32415, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4085:7:20", + "src": "3861:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28216, + "id": 32414, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4085:7:20", + "src": "3861:7:31", "typeDescriptions": {} } }, - "id": 28219, + "id": 32417, "isConstant": false, "isLValue": false, "isPure": false, @@ -7195,7 +7097,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4085:16:20", + "src": "3861:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7205,14 +7107,14 @@ { "arguments": [ { - "id": 28222, + "id": 32420, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "4111:3:20", + "referencedDeclaration": 31565, + "src": "3887:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -7220,30 +7122,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28221, + "id": 32419, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4103:7:20", + "src": "3879:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28220, + "id": 32418, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4103:7:20", + "src": "3879:7:31", "typeDescriptions": {} } }, - "id": 28223, + "id": 32421, "isConstant": false, "isLValue": false, "isPure": false, @@ -7252,7 +7154,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4103:12:20", + "src": "3879:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7261,14 +7163,14 @@ }, { "hexValue": "3130", - "id": 28224, + "id": 32422, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4117:8:20", + "src": "3893:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000_by_1", @@ -7293,33 +7195,33 @@ } ], "expression": { - "id": 28214, + "id": 32412, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "4065:3:20", + "referencedDeclaration": 31571, + "src": "3841:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28215, + "id": 32413, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4069:15:20", + "memberLocation": "3845:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "4065:19:20", + "referencedDeclaration": 30294, + "src": "3841:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 28225, + "id": 32423, "isConstant": false, "isLValue": false, "isPure": false, @@ -7328,7 +7230,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4065:61:20", + "src": "3841:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7348,18 +7250,18 @@ "typeString": "bool" } ], - "id": 28213, + "id": 32411, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "4057:6:20", + "src": "3833:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28227, + "id": 32425, "isConstant": false, "isLValue": false, "isPure": false, @@ -7368,22 +7270,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4057:70:20", + "src": "3833:70:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28228, + "id": 32426, "nodeType": "ExpressionStatement", - "src": "4057:70:20" + "src": "3833:70:31" }, { "expression": { "arguments": [ { - "id": 28242, + "id": 32440, "isConstant": false, "isLValue": false, "isPure": false, @@ -7391,20 +7293,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4213:62:20", + "src": "3989:62:31", "subExpression": { "arguments": [ { "arguments": [ { - "id": 28234, + "id": 32432, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "4242:7:20", + "referencedDeclaration": 32093, + "src": "4018:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -7412,30 +7314,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28233, + "id": 32431, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4234:7:20", + "src": "4010:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28232, + "id": 32430, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4234:7:20", + "src": "4010:7:31", "typeDescriptions": {} } }, - "id": 28235, + "id": 32433, "isConstant": false, "isLValue": false, "isPure": false, @@ -7444,7 +7346,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4234:16:20", + "src": "4010:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7454,14 +7356,14 @@ { "arguments": [ { - "id": 28238, + "id": 32436, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "4260:3:20", + "referencedDeclaration": 31565, + "src": "4036:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -7469,30 +7371,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28237, + "id": 32435, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4252:7:20", + "src": "4028:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28236, + "id": 32434, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4252:7:20", + "src": "4028:7:31", "typeDescriptions": {} } }, - "id": 28239, + "id": 32437, "isConstant": false, "isLValue": false, "isPure": false, @@ -7501,7 +7403,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4252:12:20", + "src": "4028:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7510,14 +7412,14 @@ }, { "hexValue": "3130", - "id": 28240, + "id": 32438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4266:8:20", + "src": "4042:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000_by_1", @@ -7542,33 +7444,33 @@ } ], "expression": { - "id": 28230, + "id": 32428, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "4214:3:20", + "referencedDeclaration": 31565, + "src": "3990:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28231, + "id": 32429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4218:15:20", + "memberLocation": "3994:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "4214:19:20", + "referencedDeclaration": 30294, + "src": "3990:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 28241, + "id": 32439, "isConstant": false, "isLValue": false, "isPure": false, @@ -7577,7 +7479,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4214:61:20", + "src": "3990:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7597,18 +7499,18 @@ "typeString": "bool" } ], - "id": 28229, + "id": 32427, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "4206:6:20", + "src": "3982:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28243, + "id": 32441, "isConstant": false, "isLValue": false, "isPure": false, @@ -7617,16 +7519,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4206:70:20", + "src": "3982:70:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28244, + "id": 32442, "nodeType": "ExpressionStatement", - "src": "4206:70:20" + "src": "3982:70:31" }, { "expression": { @@ -7636,14 +7538,14 @@ { "arguments": [ { - "id": 28250, + "id": 32448, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "4377:7:20", + "referencedDeclaration": 32093, + "src": "4153:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -7651,30 +7553,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28249, + "id": 32447, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4369:7:20", + "src": "4145:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28248, + "id": 32446, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4369:7:20", + "src": "4145:7:31", "typeDescriptions": {} } }, - "id": 28251, + "id": 32449, "isConstant": false, "isLValue": false, "isPure": false, @@ -7683,7 +7585,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4369:16:20", + "src": "4145:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7693,14 +7595,14 @@ { "arguments": [ { - "id": 28254, + "id": 32452, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "4395:3:20", + "referencedDeclaration": 31565, + "src": "4171:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -7708,30 +7610,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28253, + "id": 32451, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4387:7:20", + "src": "4163:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28252, + "id": 32450, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4387:7:20", + "src": "4163:7:31", "typeDescriptions": {} } }, - "id": 28255, + "id": 32453, "isConstant": false, "isLValue": false, "isPure": false, @@ -7740,7 +7642,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4387:12:20", + "src": "4163:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7749,14 +7651,14 @@ }, { "hexValue": "3130", - "id": 28256, + "id": 32454, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4401:8:20", + "src": "4177:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000_by_1", @@ -7781,33 +7683,33 @@ } ], "expression": { - "id": 28246, + "id": 32444, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "4349:3:20", + "referencedDeclaration": 31568, + "src": "4125:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28247, + "id": 32445, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4353:15:20", + "memberLocation": "4129:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "4349:19:20", + "referencedDeclaration": 30294, + "src": "4125:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 28257, + "id": 32455, "isConstant": false, "isLValue": false, "isPure": false, @@ -7816,7 +7718,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4349:61:20", + "src": "4125:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7831,18 +7733,18 @@ "typeString": "bool" } ], - "id": 28245, + "id": 32443, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "4342:6:20", + "src": "4118:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28258, + "id": 32456, "isConstant": false, "isLValue": false, "isPure": false, @@ -7851,16 +7753,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4342:69:20", + "src": "4118:69:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28259, + "id": 32457, "nodeType": "ExpressionStatement", - "src": "4342:69:20" + "src": "4118:69:31" }, { "expression": { @@ -7868,14 +7770,14 @@ { "arguments": [ { - "id": 28265, + "id": 32463, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "4446:3:20", + "referencedDeclaration": 31568, + "src": "4222:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -7883,30 +7785,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28264, + "id": 32462, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4438:7:20", + "src": "4214:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28263, + "id": 32461, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4438:7:20", + "src": "4214:7:31", "typeDescriptions": {} } }, - "id": 28266, + "id": 32464, "isConstant": false, "isLValue": false, "isPure": false, @@ -7915,7 +7817,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4438:12:20", + "src": "4214:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7931,33 +7833,33 @@ } ], "expression": { - "id": 28260, + "id": 32458, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "4424:2:20", + "src": "4200:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 28262, + "id": 32460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4427:10:20", + "memberLocation": "4203:10:31", "memberName": "startPrank", "nodeType": "MemberAccess", - "referencedDeclaration": 9043, - "src": "4424:13:20", + "referencedDeclaration": 9080, + "src": "4200:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 28267, + "id": 32465, "isConstant": false, "isLValue": false, "isPure": false, @@ -7966,30 +7868,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4424:27:20", + "src": "4200:27:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28268, + "id": 32466, "nodeType": "ExpressionStatement", - "src": "4424:27:20" + "src": "4200:27:31" }, { "expression": { "arguments": [ { "hexValue": "56657374696e672e736f6c3a3a616464496e766573746f72282920696e766573746f7220697320616c7265616479206164646564", - "id": 28272, + "id": 32470, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4546:54:20", + "src": "4322:54:31", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ac8b3365ec58116f79763809b4a76f0b400571fe8055cd18bc01fd9ea666875f", "typeString": "literal_string \"Vesting.sol::addInvestor() investor is already added\"" @@ -8005,33 +7907,33 @@ } ], "expression": { - "id": 28269, + "id": 32467, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "4530:2:20", + "src": "4306:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 28271, + "id": 32469, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4533:12:20", + "memberLocation": "4309:12:31", "memberName": "expectRevert", "nodeType": "MemberAccess", - "referencedDeclaration": 9079, - "src": "4530:15:20", + "referencedDeclaration": 9116, + "src": "4306:15:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) external" } }, - "id": 28273, + "id": 32471, "isConstant": false, "isLValue": false, "isPure": false, @@ -8040,16 +7942,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4530:71:20", + "src": "4306:71:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28274, + "id": 32472, "nodeType": "ExpressionStatement", - "src": "4530:71:20" + "src": "4306:71:31" }, { "expression": { @@ -8057,14 +7959,14 @@ { "arguments": [ { - "id": 28280, + "id": 32478, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "4640:3:20", + "referencedDeclaration": 31565, + "src": "4416:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -8072,30 +7974,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28279, + "id": 32477, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4632:7:20", + "src": "4408:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28278, + "id": 32476, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4632:7:20", + "src": "4408:7:31", "typeDescriptions": {} } }, - "id": 28281, + "id": 32479, "isConstant": false, "isLValue": false, "isPure": false, @@ -8104,7 +8006,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4632:12:20", + "src": "4408:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -8113,14 +8015,14 @@ }, { "hexValue": "3130", - "id": 28282, + "id": 32480, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4646:8:20", + "src": "4422:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000_by_1", @@ -8141,33 +8043,33 @@ } ], "expression": { - "id": 28275, + "id": 32473, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "4612:7:20", + "referencedDeclaration": 32093, + "src": "4388:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28277, + "id": 32475, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4620:11:20", + "memberLocation": "4396:11:31", "memberName": "addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 25683, - "src": "4612:19:20", + "referencedDeclaration": 27709, + "src": "4388:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 28283, + "id": 32481, "isConstant": false, "isLValue": false, "isPure": false, @@ -8176,30 +8078,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4612:43:20", + "src": "4388:43:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28284, + "id": 32482, "nodeType": "ExpressionStatement", - "src": "4612:43:20" + "src": "4388:43:31" }, { "expression": { "arguments": [ { "hexValue": "56657374696e672e736f6c3a3a616464496e766573746f722829205f6163636f756e742063616e6e6f742062652061646472657373283029", - "id": 28288, + "id": 32486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4748:58:20", + "src": "4524:58:31", "typeDescriptions": { "typeIdentifier": "t_stringliteral_43a7576cc71999d5991f16be987a98bc7d178f59df62ec343336a603751a8636", "typeString": "literal_string \"Vesting.sol::addInvestor() _account cannot be address(0)\"" @@ -8215,33 +8117,33 @@ } ], "expression": { - "id": 28285, + "id": 32483, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "4732:2:20", + "src": "4508:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 28287, + "id": 32485, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4735:12:20", + "memberLocation": "4511:12:31", "memberName": "expectRevert", "nodeType": "MemberAccess", - "referencedDeclaration": 9079, - "src": "4732:15:20", + "referencedDeclaration": 9116, + "src": "4508:15:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) external" } }, - "id": 28289, + "id": 32487, "isConstant": false, "isLValue": false, "isPure": false, @@ -8250,16 +8152,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4732:75:20", + "src": "4508:75:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28290, + "id": 32488, "nodeType": "ExpressionStatement", - "src": "4732:75:20" + "src": "4508:75:31" }, { "expression": { @@ -8268,14 +8170,14 @@ "arguments": [ { "hexValue": "30", - "id": 28296, + "id": 32494, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4846:1:20", + "src": "4622:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -8290,26 +8192,26 @@ "typeString": "int_const 0" } ], - "id": 28295, + "id": 32493, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4838:7:20", + "src": "4614:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28294, + "id": 32492, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4838:7:20", + "src": "4614:7:31", "typeDescriptions": {} } }, - "id": 28297, + "id": 32495, "isConstant": false, "isLValue": false, "isPure": true, @@ -8318,7 +8220,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4838:10:20", + "src": "4614:10:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -8327,14 +8229,14 @@ }, { "hexValue": "3130", - "id": 28298, + "id": 32496, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4850:8:20", + "src": "4626:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000_by_1", @@ -8355,33 +8257,33 @@ } ], "expression": { - "id": 28291, + "id": 32489, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "4818:7:20", + "referencedDeclaration": 32093, + "src": "4594:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28293, + "id": 32491, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4826:11:20", + "memberLocation": "4602:11:31", "memberName": "addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 25683, - "src": "4818:19:20", + "referencedDeclaration": 27709, + "src": "4594:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 28299, + "id": 32497, "isConstant": false, "isLValue": false, "isPure": false, @@ -8390,30 +8292,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4818:41:20", + "src": "4594:41:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28300, + "id": 32498, "nodeType": "ExpressionStatement", - "src": "4818:41:20" + "src": "4594:41:31" }, { "expression": { "arguments": [ { "hexValue": "56657374696e672e736f6c3a3a616464496e766573746f722829205f746f6b656e73546f56657374206d7573742062652067742030", - "id": 28304, + "id": 32502, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4950:55:20", + "src": "4726:55:31", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6c29cccc352d3a7eba90af13be2b3943b9e81df521048af1ca34057bc8661bb8", "typeString": "literal_string \"Vesting.sol::addInvestor() _tokensToVest must be gt 0\"" @@ -8429,33 +8331,33 @@ } ], "expression": { - "id": 28301, + "id": 32499, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "4934:2:20", + "src": "4710:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 28303, + "id": 32501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4937:12:20", + "memberLocation": "4713:12:31", "memberName": "expectRevert", "nodeType": "MemberAccess", - "referencedDeclaration": 9079, - "src": "4934:15:20", + "referencedDeclaration": 9116, + "src": "4710:15:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) external" } }, - "id": 28305, + "id": 32503, "isConstant": false, "isLValue": false, "isPure": false, @@ -8464,16 +8366,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4934:72:20", + "src": "4710:72:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28306, + "id": 32504, "nodeType": "ExpressionStatement", - "src": "4934:72:20" + "src": "4710:72:31" }, { "expression": { @@ -8481,14 +8383,14 @@ { "arguments": [ { - "id": 28312, + "id": 32510, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "5045:3:20", + "referencedDeclaration": 31571, + "src": "4821:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -8496,30 +8398,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28311, + "id": 32509, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5037:7:20", + "src": "4813:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28310, + "id": 32508, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5037:7:20", + "src": "4813:7:31", "typeDescriptions": {} } }, - "id": 28313, + "id": 32511, "isConstant": false, "isLValue": false, "isPure": false, @@ -8528,7 +8430,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5037:12:20", + "src": "4813:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -8537,14 +8439,14 @@ }, { "hexValue": "30", - "id": 28314, + "id": 32512, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5051:1:20", + "src": "4827:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -8564,33 +8466,33 @@ } ], "expression": { - "id": 28307, + "id": 32505, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "5017:7:20", + "referencedDeclaration": 32093, + "src": "4793:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28309, + "id": 32507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5025:11:20", + "memberLocation": "4801:11:31", "memberName": "addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 25683, - "src": "5017:19:20", + "referencedDeclaration": 27709, + "src": "4793:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 28315, + "id": 32513, "isConstant": false, "isLValue": false, "isPure": false, @@ -8599,16 +8501,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5017:36:20", + "src": "4793:36:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28316, + "id": 32514, "nodeType": "ExpressionStatement", - "src": "5017:36:20" + "src": "4793:36:31" }, { "expression": { @@ -8616,33 +8518,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 28317, + "id": 32515, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "5066:2:20", + "src": "4842:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 28319, + "id": 32517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5069:9:20", + "memberLocation": "4845:9:31", "memberName": "stopPrank", "nodeType": "MemberAccess", - "referencedDeclaration": 9060, - "src": "5066:12:20", + "referencedDeclaration": 9097, + "src": "4842:12:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, - "id": 28320, + "id": 32518, "isConstant": false, "isLValue": false, "isPure": false, @@ -8651,23 +8553,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5066:14:20", + "src": "4842:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28321, + "id": 32519, "nodeType": "ExpressionStatement", - "src": "5066:14:20" + "src": "4842:14:31" } ] }, "documentation": { - "id": 28210, + "id": 32408, "nodeType": "StructuredDocumentation", - "src": "3875:42:20", + "src": "3651:42:31", "text": "@dev Verifies addInvestor restrictions" }, "functionSelector": "a641e8dc", @@ -8675,33 +8577,33 @@ "kind": "function", "modifiers": [], "name": "test_vesting_addInvestor_restrictions", - "nameLocation": "3932:37:20", + "nameLocation": "3708:37:31", "parameters": { - "id": 28211, + "id": 32409, "nodeType": "ParameterList", "parameters": [], - "src": "3969:2:20" + "src": "3745:2:31" }, "returnParameters": { - "id": 28212, + "id": 32410, "nodeType": "ParameterList", "parameters": [], - "src": "3979:0:20" + "src": "3755:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 28420, + "id": 32632, "nodeType": "FunctionDefinition", - "src": "5145:748:20", + "src": "4921:861:31", "nodes": [], "body": { - "id": 28419, + "id": 32631, "nodeType": "Block", - "src": "5202:691:20", + "src": "4978:804:31", "nodes": [], "statements": [ { @@ -8712,14 +8614,14 @@ { "arguments": [ { - "id": 28332, + "id": 32530, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "5277:3:20", + "referencedDeclaration": 31565, + "src": "5053:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -8727,30 +8629,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28331, + "id": 32529, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5269:7:20", + "src": "5045:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28330, + "id": 32528, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5269:7:20", + "src": "5045:7:31", "typeDescriptions": {} } }, - "id": 28333, + "id": 32531, "isConstant": false, "isLValue": false, "isPure": false, @@ -8759,7 +8661,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5269:12:20", + "src": "5045:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -8775,33 +8677,33 @@ } ], "expression": { - "id": 28328, + "id": 32526, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "5251:7:20", + "referencedDeclaration": 32093, + "src": "5027:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28329, + "id": 32527, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5259:9:20", + "memberLocation": "5035:9:31", "memberName": "investors", "nodeType": "MemberAccess", - "referencedDeclaration": 25507, - "src": "5251:17:20", + "referencedDeclaration": 27529, + "src": "5027:17:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 28334, + "id": 32532, "isConstant": false, "isLValue": false, "isPure": false, @@ -8810,7 +8712,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5251:31:20", + "src": "5027:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -8819,14 +8721,14 @@ }, { "hexValue": "66616c7365", - "id": 28335, + "id": 32533, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5289:5:20", + "src": "5065:5:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8845,20 +8747,20 @@ "typeString": "bool" } ], - "id": 28327, + "id": 32525, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -8870,14 +8772,14 @@ 1639, 1674 ], - "referencedDeclaration": 1974, - "src": "5242:8:20", + "referencedDeclaration": 2011, + "src": "5018:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, - "id": 28336, + "id": 32534, "isConstant": false, "isLValue": false, "isPure": false, @@ -8886,103 +8788,103 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5242:53:20", + "src": "5018:53:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28337, + "id": 32535, "nodeType": "ExpressionStatement", - "src": "5242:53:20" + "src": "5018:53:31" }, { "assignments": [ - 28343 + 32541 ], "declarations": [ { "constant": false, - "id": 28343, + "id": 32541, "mutability": "mutable", "name": "tempArr", - "nameLocation": "5332:7:20", + "nameLocation": "5108:7:31", "nodeType": "VariableDeclaration", - "scope": 28419, - "src": "5306:33:20", + "scope": 32631, + "src": "5082:33:31", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor[]" }, "typeName": { "baseType": { - "id": 28341, + "id": 32539, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 28340, + "id": 32538, "name": "Vesting.Investor", "nameLocations": [ - "5306:7:20", - "5314:8:20" + "5082:7:31", + "5090:8:31" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 25503, - "src": "5306:16:20" + "referencedDeclaration": 27525, + "src": "5082:16:31" }, - "referencedDeclaration": 25503, - "src": "5306:16:20", + "referencedDeclaration": 27525, + "src": "5082:16:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_storage_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_storage_ptr", "typeString": "struct Vesting.Investor" } }, - "id": 28342, + "id": 32540, "nodeType": "ArrayTypeName", - "src": "5306:18:20", + "src": "5082:18:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage_ptr", "typeString": "struct Vesting.Investor[]" } }, "visibility": "internal" } ], - "id": 28347, + "id": 32545, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 28344, + "id": 32542, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "5342:7:20", + "referencedDeclaration": 32093, + "src": "5118:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28345, + "id": 32543, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5350:18:20", + "memberLocation": "5126:18:31", "memberName": "getInvestorLibrary", "nodeType": "MemberAccess", - "referencedDeclaration": 26060, - "src": "5342:26:20", + "referencedDeclaration": 28095, + "src": "5118:26:31", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr_$", "typeString": "function () view external returns (struct Vesting.Investor memory[] memory)" } }, - "id": 28346, + "id": 32544, "isConstant": false, "isLValue": false, "isPure": false, @@ -8991,41 +8893,171 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5342:28:20", + "src": "5118:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5306:64:20" + "src": "5082:64:31" }, { "expression": { "arguments": [ { "expression": { - "id": 28349, + "id": 32547, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28343, - "src": "5390:7:20", + "referencedDeclaration": 32541, + "src": "5166:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28350, + "id": 32548, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5398:6:20", + "memberLocation": "5174:6:31", "memberName": "length", "nodeType": "MemberAccess", - "src": "5390:14:20", + "src": "5166:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 32549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5191:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 32546, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, + 2191, + 2228, + 2265, + 2302, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "5157:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 32550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5157:36:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32551, + "nodeType": "ExpressionStatement", + "src": "5157:36:31" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 32553, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32093, + "src": "5213:7:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28096", + "typeString": "contract Vesting" + } + }, + "id": 32554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5221:18:31", + "memberName": "getAllVestedTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 27878, + "src": "5213:26:31", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 32555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5213:28:31", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9033,14 +9065,14 @@ }, { "hexValue": "30", - "id": 28351, + "id": 32556, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5415:1:20", + "src": "5243:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -9059,20 +9091,20 @@ "typeString": "int_const 0" } ], - "id": 28348, + "id": 32552, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -9085,13 +9117,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "5381:8:20", + "src": "5204:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28352, + "id": 32557, "isConstant": false, "isLValue": false, "isPure": false, @@ -9100,16 +9132,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5381:36:20", + "src": "5204:41:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28353, + "id": 32558, "nodeType": "ExpressionStatement", - "src": "5381:36:20" + "src": "5204:41:31" }, { "expression": { @@ -9119,14 +9151,14 @@ { "arguments": [ { - "id": 28359, + "id": 32564, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "5497:7:20", + "referencedDeclaration": 32093, + "src": "5325:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -9134,30 +9166,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28358, + "id": 32563, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5489:7:20", + "src": "5317:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28357, + "id": 32562, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5489:7:20", + "src": "5317:7:31", "typeDescriptions": {} } }, - "id": 28360, + "id": 32565, "isConstant": false, "isLValue": false, "isPure": false, @@ -9166,7 +9198,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5489:16:20", + "src": "5317:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -9176,14 +9208,14 @@ { "arguments": [ { - "id": 28363, + "id": 32568, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "5515:3:20", + "referencedDeclaration": 31565, + "src": "5343:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -9191,30 +9223,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28362, + "id": 32567, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5507:7:20", + "src": "5335:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28361, + "id": 32566, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5507:7:20", + "src": "5335:7:31", "typeDescriptions": {} } }, - "id": 28364, + "id": 32569, "isConstant": false, "isLValue": false, "isPure": false, @@ -9223,7 +9255,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5507:12:20", + "src": "5335:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -9232,14 +9264,14 @@ }, { "hexValue": "3130", - "id": 28365, + "id": 32570, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5521:8:20", + "src": "5349:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000_by_1", @@ -9264,33 +9296,33 @@ } ], "expression": { - "id": 28355, + "id": 32560, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "5469:3:20", + "referencedDeclaration": 31568, + "src": "5297:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28356, + "id": 32561, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5473:15:20", + "memberLocation": "5301:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "5469:19:20", + "referencedDeclaration": 30294, + "src": "5297:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 28366, + "id": 32571, "isConstant": false, "isLValue": false, "isPure": false, @@ -9299,7 +9331,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5469:61:20", + "src": "5297:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9314,18 +9346,18 @@ "typeString": "bool" } ], - "id": 28354, + "id": 32559, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "5462:6:20", + "src": "5290:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28367, + "id": 32572, "isConstant": false, "isLValue": false, "isPure": false, @@ -9334,16 +9366,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5462:69:20", + "src": "5290:69:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28368, + "id": 32573, "nodeType": "ExpressionStatement", - "src": "5462:69:20" + "src": "5290:69:31" }, { "expression": { @@ -9353,14 +9385,14 @@ { "arguments": [ { - "id": 28374, + "id": 32579, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "5609:3:20", + "referencedDeclaration": 31565, + "src": "5437:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -9368,30 +9400,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28373, + "id": 32578, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5601:7:20", + "src": "5429:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28372, + "id": 32577, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5601:7:20", + "src": "5429:7:31", "typeDescriptions": {} } }, - "id": 28375, + "id": 32580, "isConstant": false, "isLValue": false, "isPure": false, @@ -9400,7 +9432,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5601:12:20", + "src": "5429:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -9416,33 +9448,33 @@ } ], "expression": { - "id": 28370, + "id": 32575, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "5583:7:20", + "referencedDeclaration": 32093, + "src": "5411:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28371, + "id": 32576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5591:9:20", + "memberLocation": "5419:9:31", "memberName": "investors", "nodeType": "MemberAccess", - "referencedDeclaration": 25507, - "src": "5583:17:20", + "referencedDeclaration": 27529, + "src": "5411:17:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 28376, + "id": 32581, "isConstant": false, "isLValue": false, "isPure": false, @@ -9451,7 +9483,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5583:31:20", + "src": "5411:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9460,14 +9492,14 @@ }, { "hexValue": "74727565", - "id": 28377, + "id": 32582, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5621:4:20", + "src": "5449:4:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9486,20 +9518,20 @@ "typeString": "bool" } ], - "id": 28369, + "id": 32574, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -9511,14 +9543,14 @@ 1639, 1674 ], - "referencedDeclaration": 1974, - "src": "5574:8:20", + "referencedDeclaration": 2011, + "src": "5402:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, - "id": 28378, + "id": 32583, "isConstant": false, "isLValue": false, "isPure": false, @@ -9527,33 +9559,33 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5574:52:20", + "src": "5402:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28379, + "id": 32584, "nodeType": "ExpressionStatement", - "src": "5574:52:20" + "src": "5402:52:31" }, { "expression": { - "id": 28384, + "id": 32589, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 28380, + "id": 32585, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28343, - "src": "5637:7:20", + "referencedDeclaration": 32541, + "src": "5465:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, @@ -9564,33 +9596,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 28381, + "id": 32586, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "5647:7:20", + "referencedDeclaration": 32093, + "src": "5475:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28382, + "id": 32587, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5655:18:20", + "memberLocation": "5483:18:31", "memberName": "getInvestorLibrary", "nodeType": "MemberAccess", - "referencedDeclaration": 26060, - "src": "5647:26:20", + "referencedDeclaration": 28095, + "src": "5475:26:31", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr_$", "typeString": "function () view external returns (struct Vesting.Investor memory[] memory)" } }, - "id": 28383, + "id": 32588, "isConstant": false, "isLValue": false, "isPure": false, @@ -9599,48 +9631,48 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5647:28:20", + "src": "5475:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "src": "5637:38:20", + "src": "5465:38:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28385, + "id": 32590, "nodeType": "ExpressionStatement", - "src": "5637:38:20" + "src": "5465:38:31" }, { "expression": { "arguments": [ { "expression": { - "id": 28387, + "id": 32592, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28343, - "src": "5695:7:20", + "referencedDeclaration": 32541, + "src": "5523:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28388, + "id": 32593, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5703:6:20", + "memberLocation": "5531:6:31", "memberName": "length", "nodeType": "MemberAccess", - "src": "5695:14:20", + "src": "5523:14:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9648,14 +9680,14 @@ }, { "hexValue": "31", - "id": 28389, + "id": 32594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5721:1:20", + "src": "5549:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -9674,20 +9706,20 @@ "typeString": "int_const 1" } ], - "id": 28386, + "id": 32591, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -9700,13 +9732,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "5686:8:20", + "src": "5514:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28390, + "id": 32595, "isConstant": false, "isLValue": false, "isPure": false, @@ -9715,16 +9747,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5686:37:20", + "src": "5514:37:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28391, + "id": 32596, "nodeType": "ExpressionStatement", - "src": "5686:37:20" + "src": "5514:37:31" }, { "expression": { @@ -9732,28 +9764,28 @@ { "expression": { "baseExpression": { - "id": 28393, + "id": 32598, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28343, - "src": "5743:7:20", + "referencedDeclaration": 32541, + "src": "5571:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28395, + "id": 32600, "indexExpression": { "hexValue": "30", - "id": 28394, + "id": 32599, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5751:1:20", + "src": "5579:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -9765,22 +9797,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5743:10:20", + "src": "5571:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28396, + "id": 32601, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5754:7:20", + "memberLocation": "5582:7:31", "memberName": "account", "nodeType": "MemberAccess", - "referencedDeclaration": 25498, - "src": "5743:18:20", + "referencedDeclaration": 27520, + "src": "5571:18:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9789,14 +9821,14 @@ { "arguments": [ { - "id": 28399, + "id": 32604, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "5777:3:20", + "referencedDeclaration": 31565, + "src": "5605:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -9804,30 +9836,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28398, + "id": 32603, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5769:7:20", + "src": "5597:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28397, + "id": 32602, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5769:7:20", + "src": "5597:7:31", "typeDescriptions": {} } }, - "id": 28400, + "id": 32605, "isConstant": false, "isLValue": false, "isPure": false, @@ -9836,7 +9868,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5769:12:20", + "src": "5597:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -9855,20 +9887,20 @@ "typeString": "address" } ], - "id": 28392, + "id": 32597, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -9881,13 +9913,13 @@ 1674 ], "referencedDeclaration": 320, - "src": "5734:8:20", + "src": "5562:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 28401, + "id": 32606, "isConstant": false, "isLValue": false, "isPure": false, @@ -9896,16 +9928,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5734:48:20", + "src": "5562:48:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28402, + "id": 32607, "nodeType": "ExpressionStatement", - "src": "5734:48:20" + "src": "5562:48:31" }, { "expression": { @@ -9913,28 +9945,28 @@ { "expression": { "baseExpression": { - "id": 28404, + "id": 32609, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28343, - "src": "5802:7:20", + "referencedDeclaration": 32541, + "src": "5630:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28406, + "id": 32611, "indexExpression": { "hexValue": "30", - "id": 28405, + "id": 32610, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5810:1:20", + "src": "5638:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -9946,22 +9978,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5802:10:20", + "src": "5630:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28407, + "id": 32612, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5813:12:20", + "memberLocation": "5641:12:31", "memberName": "tokensToVest", "nodeType": "MemberAccess", - "referencedDeclaration": 25500, - "src": "5802:23:20", + "referencedDeclaration": 27522, + "src": "5630:23:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9969,14 +10001,14 @@ }, { "hexValue": "3130", - "id": 28408, + "id": 32613, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5828:8:20", + "src": "5656:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000_by_1", @@ -9996,20 +10028,20 @@ "typeString": "int_const 10000000000000000000" } ], - "id": 28403, + "id": 32608, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -10022,13 +10054,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "5793:8:20", + "src": "5621:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28409, + "id": 32614, "isConstant": false, "isLValue": false, "isPure": false, @@ -10037,16 +10069,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5793:44:20", + "src": "5621:44:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28410, + "id": 32615, "nodeType": "ExpressionStatement", - "src": "5793:44:20" + "src": "5621:44:31" }, { "expression": { @@ -10054,28 +10086,28 @@ { "expression": { "baseExpression": { - "id": 28412, + "id": 32617, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28343, - "src": "5857:7:20", + "referencedDeclaration": 32541, + "src": "5685:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28414, + "id": 32619, "indexExpression": { "hexValue": "30", - "id": 28413, + "id": 32618, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5865:1:20", + "src": "5693:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -10087,22 +10119,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5857:10:20", + "src": "5685:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28415, + "id": 32620, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5868:13:20", + "memberLocation": "5696:13:31", "memberName": "tokensClaimed", "nodeType": "MemberAccess", - "referencedDeclaration": 25502, - "src": "5857:24:20", + "referencedDeclaration": 27524, + "src": "5685:24:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10110,14 +10142,14 @@ }, { "hexValue": "30", - "id": 28416, + "id": 32621, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5883:1:20", + "src": "5711:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -10136,20 +10168,151 @@ "typeString": "int_const 0" } ], - "id": 28411, + "id": 32616, + "name": "assertEq", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, + 2191, + 2228, + 2265, + 2302, + 320, + 345, + 375, + 400, + 459, + 484, + 514, + 539, + 1639, + 1674 + ], + "referencedDeclaration": 514, + "src": "5676:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 32622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5676:37:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32623, + "nodeType": "ExpressionStatement", + "src": "5676:37:31" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 32625, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32093, + "src": "5735:7:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28096", + "typeString": "contract Vesting" + } + }, + "id": 32626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5743:18:31", + "memberName": "getAllVestedTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 27878, + "src": "5735:26:31", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 32627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5735:28:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "3130", + "id": 32628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5765:8:31", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000_by_1", + "typeString": "int_const 10000000000000000000" + }, + "value": "10" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_10000000000000000000_by_1", + "typeString": "int_const 10000000000000000000" + } + ], + "id": 32624, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -10162,13 +10325,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "5848:8:20", + "src": "5726:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28417, + "id": 32629, "isConstant": false, "isLValue": false, "isPure": false, @@ -10177,23 +10340,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5848:37:20", + "src": "5726:48:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28418, + "id": 32630, "nodeType": "ExpressionStatement", - "src": "5848:37:20" + "src": "5726:48:31" } ] }, "documentation": { - "id": 28324, + "id": 32522, "nodeType": "StructuredDocumentation", - "src": "5096:43:20", + "src": "4872:43:31", "text": "@dev Verifies addInvestor state changes" }, "functionSelector": "12223997", @@ -10201,33 +10364,33 @@ "kind": "function", "modifiers": [], "name": "test_vesting_addInvestor_state_changes", - "nameLocation": "5154:38:20", + "nameLocation": "4930:38:31", "parameters": { - "id": 28325, + "id": 32523, "nodeType": "ParameterList", "parameters": [], - "src": "5192:2:20" + "src": "4968:2:31" }, "returnParameters": { - "id": 28326, + "id": 32524, "nodeType": "ParameterList", "parameters": [], - "src": "5202:0:20" + "src": "4978:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 28528, + "id": 32740, "nodeType": "FunctionDefinition", - "src": "5991:1102:20", + "src": "5880:1102:31", "nodes": [], "body": { - "id": 28527, + "id": 32739, "nodeType": "Block", - "src": "6050:1043:20", + "src": "5939:1043:31", "nodes": [], "statements": [ { @@ -10238,14 +10401,14 @@ { "arguments": [ { - "id": 28429, + "id": 32641, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "6150:7:20", + "referencedDeclaration": 32093, + "src": "6039:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -10253,30 +10416,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28428, + "id": 32640, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6142:7:20", + "src": "6031:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28427, + "id": 32639, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6142:7:20", + "src": "6031:7:31", "typeDescriptions": {} } }, - "id": 28430, + "id": 32642, "isConstant": false, "isLValue": false, "isPure": false, @@ -10285,7 +10448,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6142:16:20", + "src": "6031:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -10295,14 +10458,14 @@ { "arguments": [ { - "id": 28433, + "id": 32645, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "6168:3:20", + "referencedDeclaration": 31565, + "src": "6057:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -10310,30 +10473,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28432, + "id": 32644, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6160:7:20", + "src": "6049:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28431, + "id": 32643, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6160:7:20", + "src": "6049:7:31", "typeDescriptions": {} } }, - "id": 28434, + "id": 32646, "isConstant": false, "isLValue": false, "isPure": false, @@ -10342,7 +10505,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6160:12:20", + "src": "6049:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -10351,14 +10514,14 @@ }, { "hexValue": "3130", - "id": 28435, + "id": 32647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6174:8:20", + "src": "6063:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000_by_1", @@ -10383,33 +10546,33 @@ } ], "expression": { - "id": 28425, + "id": 32637, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "6122:3:20", + "referencedDeclaration": 31568, + "src": "6011:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28426, + "id": 32638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6126:15:20", + "memberLocation": "6015:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "6122:19:20", + "referencedDeclaration": 30294, + "src": "6011:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 28436, + "id": 32648, "isConstant": false, "isLValue": false, "isPure": false, @@ -10418,7 +10581,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6122:61:20", + "src": "6011:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10433,18 +10596,18 @@ "typeString": "bool" } ], - "id": 28424, + "id": 32636, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "6115:6:20", + "src": "6004:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28437, + "id": 32649, "isConstant": false, "isLValue": false, "isPure": false, @@ -10453,22 +10616,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6115:69:20", + "src": "6004:69:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28438, + "id": 32650, "nodeType": "ExpressionStatement", - "src": "6115:69:20" + "src": "6004:69:31" }, { "expression": { "arguments": [ { - "id": 28451, + "id": 32663, "isConstant": false, "isLValue": false, "isPure": false, @@ -10476,20 +10639,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "6274:55:20", + "src": "6163:55:31", "subExpression": { "arguments": [ { "arguments": [ { - "id": 28444, + "id": 32656, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "6306:7:20", + "referencedDeclaration": 32093, + "src": "6195:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -10497,30 +10660,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28443, + "id": 32655, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6298:7:20", + "src": "6187:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28442, + "id": 32654, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6298:7:20", + "src": "6187:7:31", "typeDescriptions": {} } }, - "id": 28445, + "id": 32657, "isConstant": false, "isLValue": false, "isPure": false, @@ -10529,7 +10692,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6298:16:20", + "src": "6187:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -10539,14 +10702,14 @@ { "arguments": [ { - "id": 28448, + "id": 32660, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "6324:3:20", + "referencedDeclaration": 31565, + "src": "6213:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -10554,30 +10717,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28447, + "id": 32659, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6316:7:20", + "src": "6205:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28446, + "id": 32658, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6316:7:20", + "src": "6205:7:31", "typeDescriptions": {} } }, - "id": 28449, + "id": 32661, "isConstant": false, "isLValue": false, "isPure": false, @@ -10586,7 +10749,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6316:12:20", + "src": "6205:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -10606,33 +10769,33 @@ } ], "expression": { - "id": 28440, + "id": 32652, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "6275:3:20", + "referencedDeclaration": 31571, + "src": "6164:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28441, + "id": 32653, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6279:18:20", + "memberLocation": "6168:18:31", "memberName": "try_removeInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27273, - "src": "6275:22:20", + "referencedDeclaration": 30323, + "src": "6164:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) external returns (bool)" } }, - "id": 28450, + "id": 32662, "isConstant": false, "isLValue": false, "isPure": false, @@ -10641,7 +10804,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6275:54:20", + "src": "6164:54:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10661,18 +10824,18 @@ "typeString": "bool" } ], - "id": 28439, + "id": 32651, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "6267:6:20", + "src": "6156:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28452, + "id": 32664, "isConstant": false, "isLValue": false, "isPure": false, @@ -10681,22 +10844,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6267:63:20", + "src": "6156:63:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28453, + "id": 32665, "nodeType": "ExpressionStatement", - "src": "6267:63:20" + "src": "6156:63:31" }, { "expression": { "arguments": [ { - "id": 28466, + "id": 32678, "isConstant": false, "isLValue": false, "isPure": false, @@ -10704,20 +10867,20 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "6419:55:20", + "src": "6308:55:31", "subExpression": { "arguments": [ { "arguments": [ { - "id": 28459, + "id": 32671, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "6451:7:20", + "referencedDeclaration": 32093, + "src": "6340:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -10725,30 +10888,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28458, + "id": 32670, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6443:7:20", + "src": "6332:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28457, + "id": 32669, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6443:7:20", + "src": "6332:7:31", "typeDescriptions": {} } }, - "id": 28460, + "id": 32672, "isConstant": false, "isLValue": false, "isPure": false, @@ -10757,7 +10920,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6443:16:20", + "src": "6332:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -10767,14 +10930,14 @@ { "arguments": [ { - "id": 28463, + "id": 32675, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "6469:3:20", + "referencedDeclaration": 31565, + "src": "6358:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -10782,30 +10945,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28462, + "id": 32674, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6461:7:20", + "src": "6350:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28461, + "id": 32673, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6461:7:20", + "src": "6350:7:31", "typeDescriptions": {} } }, - "id": 28464, + "id": 32676, "isConstant": false, "isLValue": false, "isPure": false, @@ -10814,7 +10977,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6461:12:20", + "src": "6350:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -10834,33 +10997,33 @@ } ], "expression": { - "id": 28455, + "id": 32667, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "6420:3:20", + "referencedDeclaration": 31565, + "src": "6309:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28456, + "id": 32668, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6424:18:20", + "memberLocation": "6313:18:31", "memberName": "try_removeInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27273, - "src": "6420:22:20", + "referencedDeclaration": 30323, + "src": "6309:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) external returns (bool)" } }, - "id": 28465, + "id": 32677, "isConstant": false, "isLValue": false, "isPure": false, @@ -10869,7 +11032,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6420:54:20", + "src": "6309:54:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10889,18 +11052,18 @@ "typeString": "bool" } ], - "id": 28454, + "id": 32666, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "6412:6:20", + "src": "6301:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28467, + "id": 32679, "isConstant": false, "isLValue": false, "isPure": false, @@ -10909,16 +11072,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6412:63:20", + "src": "6301:63:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28468, + "id": 32680, "nodeType": "ExpressionStatement", - "src": "6412:63:20" + "src": "6301:63:31" }, { "expression": { @@ -10928,14 +11091,14 @@ { "arguments": [ { - "id": 28474, + "id": 32686, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "6582:7:20", + "referencedDeclaration": 32093, + "src": "6471:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -10943,30 +11106,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28473, + "id": 32685, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6574:7:20", + "src": "6463:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28472, + "id": 32684, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6574:7:20", + "src": "6463:7:31", "typeDescriptions": {} } }, - "id": 28475, + "id": 32687, "isConstant": false, "isLValue": false, "isPure": false, @@ -10975,7 +11138,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6574:16:20", + "src": "6463:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -10985,14 +11148,14 @@ { "arguments": [ { - "id": 28478, + "id": 32690, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "6600:3:20", + "referencedDeclaration": 31565, + "src": "6489:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -11000,30 +11163,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28477, + "id": 32689, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6592:7:20", + "src": "6481:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28476, + "id": 32688, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6592:7:20", + "src": "6481:7:31", "typeDescriptions": {} } }, - "id": 28479, + "id": 32691, "isConstant": false, "isLValue": false, "isPure": false, @@ -11032,7 +11195,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6592:12:20", + "src": "6481:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -11052,33 +11215,33 @@ } ], "expression": { - "id": 28470, + "id": 32682, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "6551:3:20", + "referencedDeclaration": 31568, + "src": "6440:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28471, + "id": 32683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6555:18:20", + "memberLocation": "6444:18:31", "memberName": "try_removeInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27273, - "src": "6551:22:20", + "referencedDeclaration": 30323, + "src": "6440:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) external returns (bool)" } }, - "id": 28480, + "id": 32692, "isConstant": false, "isLValue": false, "isPure": false, @@ -11087,7 +11250,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6551:54:20", + "src": "6440:54:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11102,18 +11265,18 @@ "typeString": "bool" } ], - "id": 28469, + "id": 32681, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "6544:6:20", + "src": "6433:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28481, + "id": 32693, "isConstant": false, "isLValue": false, "isPure": false, @@ -11122,16 +11285,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6544:62:20", + "src": "6433:62:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28482, + "id": 32694, "nodeType": "ExpressionStatement", - "src": "6544:62:20" + "src": "6433:62:31" }, { "expression": { @@ -11139,14 +11302,14 @@ { "arguments": [ { - "id": 28488, + "id": 32700, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "6641:3:20", + "referencedDeclaration": 31568, + "src": "6530:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -11154,30 +11317,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28487, + "id": 32699, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6633:7:20", + "src": "6522:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28486, + "id": 32698, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6633:7:20", + "src": "6522:7:31", "typeDescriptions": {} } }, - "id": 28489, + "id": 32701, "isConstant": false, "isLValue": false, "isPure": false, @@ -11186,7 +11349,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6633:12:20", + "src": "6522:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -11202,33 +11365,33 @@ } ], "expression": { - "id": 28483, + "id": 32695, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "6619:2:20", + "src": "6508:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 28485, + "id": 32697, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6622:10:20", + "memberLocation": "6511:10:31", "memberName": "startPrank", "nodeType": "MemberAccess", - "referencedDeclaration": 9043, - "src": "6619:13:20", + "referencedDeclaration": 9080, + "src": "6508:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 28490, + "id": 32702, "isConstant": false, "isLValue": false, "isPure": false, @@ -11237,30 +11400,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6619:27:20", + "src": "6508:27:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28491, + "id": 32703, "nodeType": "ExpressionStatement", - "src": "6619:27:20" + "src": "6508:27:31" }, { "expression": { "arguments": [ { "hexValue": "56657374696e672e736f6c3a3a6c6f63617465496e766573746f722829206163636f756e74206973206e6f7420616e20696e766573746f72", - "id": 28495, + "id": 32707, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6754:58:20", + "src": "6643:58:31", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3c7d5b975a38bc7e0b558417843062c4383bc48f01017af3fb1a433530c55d36", "typeString": "literal_string \"Vesting.sol::locateInvestor() account is not an investor\"" @@ -11276,33 +11439,33 @@ } ], "expression": { - "id": 28492, + "id": 32704, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "6738:2:20", + "src": "6627:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 28494, + "id": 32706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6741:12:20", + "memberLocation": "6630:12:31", "memberName": "expectRevert", "nodeType": "MemberAccess", - "referencedDeclaration": 9079, - "src": "6738:15:20", + "referencedDeclaration": 9116, + "src": "6627:15:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) external" } }, - "id": 28496, + "id": 32708, "isConstant": false, "isLValue": false, "isPure": false, @@ -11311,16 +11474,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6738:75:20", + "src": "6627:75:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28497, + "id": 32709, "nodeType": "ExpressionStatement", - "src": "6738:75:20" + "src": "6627:75:31" }, { "expression": { @@ -11328,14 +11491,14 @@ { "arguments": [ { - "id": 28503, + "id": 32715, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "6855:3:20", + "referencedDeclaration": 31571, + "src": "6744:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -11343,30 +11506,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28502, + "id": 32714, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6847:7:20", + "src": "6736:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28501, + "id": 32713, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6847:7:20", + "src": "6736:7:31", "typeDescriptions": {} } }, - "id": 28504, + "id": 32716, "isConstant": false, "isLValue": false, "isPure": false, @@ -11375,7 +11538,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6847:12:20", + "src": "6736:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -11391,33 +11554,33 @@ } ], "expression": { - "id": 28498, + "id": 32710, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "6824:7:20", + "referencedDeclaration": 32093, + "src": "6713:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28500, + "id": 32712, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6832:14:20", + "memberLocation": "6721:14:31", "memberName": "removeInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 25750, - "src": "6824:22:20", + "referencedDeclaration": 27776, + "src": "6713:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 28505, + "id": 32717, "isConstant": false, "isLValue": false, "isPure": false, @@ -11426,30 +11589,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6824:36:20", + "src": "6713:36:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28506, + "id": 32718, "nodeType": "ExpressionStatement", - "src": "6824:36:20" + "src": "6713:36:31" }, { "expression": { "arguments": [ { "hexValue": "56657374696e672e736f6c3a3a72656d6f7665496e766573746f722829206163636f756e742063616e6e6f742062652061646472657373283029", - "id": 28510, + "id": 32722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6952:60:20", + "src": "6841:60:31", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6b2ef8fa4a278f0c633eee5173cf5b45c06af3207fcf59338db6e0d4ebe3ce85", "typeString": "literal_string \"Vesting.sol::removeInvestor() account cannot be address(0)\"" @@ -11465,33 +11628,33 @@ } ], "expression": { - "id": 28507, + "id": 32719, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "6936:2:20", + "src": "6825:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 28509, + "id": 32721, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6939:12:20", + "memberLocation": "6828:12:31", "memberName": "expectRevert", "nodeType": "MemberAccess", - "referencedDeclaration": 9079, - "src": "6936:15:20", + "referencedDeclaration": 9116, + "src": "6825:15:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) external" } }, - "id": 28511, + "id": 32723, "isConstant": false, "isLValue": false, "isPure": false, @@ -11500,16 +11663,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6936:77:20", + "src": "6825:77:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28512, + "id": 32724, "nodeType": "ExpressionStatement", - "src": "6936:77:20" + "src": "6825:77:31" }, { "expression": { @@ -11518,14 +11681,14 @@ "arguments": [ { "hexValue": "30", - "id": 28518, + "id": 32730, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7055:1:20", + "src": "6944:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -11540,26 +11703,26 @@ "typeString": "int_const 0" } ], - "id": 28517, + "id": 32729, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7047:7:20", + "src": "6936:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28516, + "id": 32728, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7047:7:20", + "src": "6936:7:31", "typeDescriptions": {} } }, - "id": 28519, + "id": 32731, "isConstant": false, "isLValue": false, "isPure": true, @@ -11568,7 +11731,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7047:10:20", + "src": "6936:10:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -11584,33 +11747,33 @@ } ], "expression": { - "id": 28513, + "id": 32725, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "7024:7:20", + "referencedDeclaration": 32093, + "src": "6913:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28515, + "id": 32727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7032:14:20", + "memberLocation": "6921:14:31", "memberName": "removeInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 25750, - "src": "7024:22:20", + "referencedDeclaration": 27776, + "src": "6913:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 28520, + "id": 32732, "isConstant": false, "isLValue": false, "isPure": false, @@ -11619,16 +11782,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7024:34:20", + "src": "6913:34:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28521, + "id": 32733, "nodeType": "ExpressionStatement", - "src": "7024:34:20" + "src": "6913:34:31" }, { "expression": { @@ -11636,33 +11799,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 28522, + "id": 32734, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "7071:2:20", + "src": "6960:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 28524, + "id": 32736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7074:9:20", + "memberLocation": "6963:9:31", "memberName": "stopPrank", "nodeType": "MemberAccess", - "referencedDeclaration": 9060, - "src": "7071:12:20", + "referencedDeclaration": 9097, + "src": "6960:12:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, - "id": 28525, + "id": 32737, "isConstant": false, "isLValue": false, "isPure": false, @@ -11671,23 +11834,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7071:14:20", + "src": "6960:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28526, + "id": 32738, "nodeType": "ExpressionStatement", - "src": "7071:14:20" + "src": "6960:14:31" } ] }, "documentation": { - "id": 28421, + "id": 32633, "nodeType": "StructuredDocumentation", - "src": "5938:47:20", + "src": "5827:47:31", "text": "@dev Verifies removeInvestor() restrictions" }, "functionSelector": "69e58f0d", @@ -11695,33 +11858,33 @@ "kind": "function", "modifiers": [], "name": "test_vesting_removeInvestor_restrictions", - "nameLocation": "6000:40:20", + "nameLocation": "5889:40:31", "parameters": { - "id": 28422, + "id": 32634, "nodeType": "ParameterList", "parameters": [], - "src": "6040:2:20" + "src": "5929:2:31" }, "returnParameters": { - "id": 28423, + "id": 32635, "nodeType": "ParameterList", "parameters": [], - "src": "6050:0:20" + "src": "5939:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 28639, + "id": 32851, "nodeType": "FunctionDefinition", - "src": "7155:881:20", + "src": "7044:881:31", "nodes": [], "body": { - "id": 28638, + "id": 32850, "nodeType": "Block", - "src": "7215:821:20", + "src": "7104:821:31", "nodes": [], "statements": [ { @@ -11732,14 +11895,14 @@ { "arguments": [ { - "id": 28537, + "id": 32749, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "7315:7:20", + "referencedDeclaration": 32093, + "src": "7204:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -11747,30 +11910,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28536, + "id": 32748, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7307:7:20", + "src": "7196:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28535, + "id": 32747, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7307:7:20", + "src": "7196:7:31", "typeDescriptions": {} } }, - "id": 28538, + "id": 32750, "isConstant": false, "isLValue": false, "isPure": false, @@ -11779,7 +11942,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7307:16:20", + "src": "7196:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -11789,14 +11952,14 @@ { "arguments": [ { - "id": 28541, + "id": 32753, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "7333:3:20", + "referencedDeclaration": 31565, + "src": "7222:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -11804,30 +11967,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28540, + "id": 32752, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7325:7:20", + "src": "7214:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28539, + "id": 32751, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7325:7:20", + "src": "7214:7:31", "typeDescriptions": {} } }, - "id": 28542, + "id": 32754, "isConstant": false, "isLValue": false, "isPure": false, @@ -11836,7 +11999,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7325:12:20", + "src": "7214:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -11845,14 +12008,14 @@ }, { "hexValue": "3130", - "id": 28543, + "id": 32755, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7339:8:20", + "src": "7228:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000_by_1", @@ -11877,33 +12040,33 @@ } ], "expression": { - "id": 28533, + "id": 32745, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "7287:3:20", + "referencedDeclaration": 31568, + "src": "7176:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28534, + "id": 32746, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7291:15:20", + "memberLocation": "7180:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "7287:19:20", + "referencedDeclaration": 30294, + "src": "7176:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 28544, + "id": 32756, "isConstant": false, "isLValue": false, "isPure": false, @@ -11912,7 +12075,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7287:61:20", + "src": "7176:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11927,18 +12090,18 @@ "typeString": "bool" } ], - "id": 28532, + "id": 32744, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "7280:6:20", + "src": "7169:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28545, + "id": 32757, "isConstant": false, "isLValue": false, "isPure": false, @@ -11947,16 +12110,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7280:69:20", + "src": "7169:69:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28546, + "id": 32758, "nodeType": "ExpressionStatement", - "src": "7280:69:20" + "src": "7169:69:31" }, { "expression": { @@ -11966,14 +12129,14 @@ { "arguments": [ { - "id": 28552, + "id": 32764, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "7426:3:20", + "referencedDeclaration": 31565, + "src": "7315:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -11981,30 +12144,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28551, + "id": 32763, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7418:7:20", + "src": "7307:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28550, + "id": 32762, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7418:7:20", + "src": "7307:7:31", "typeDescriptions": {} } }, - "id": 28553, + "id": 32765, "isConstant": false, "isLValue": false, "isPure": false, @@ -12013,7 +12176,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7418:12:20", + "src": "7307:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -12029,33 +12192,33 @@ } ], "expression": { - "id": 28548, + "id": 32760, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "7400:7:20", + "referencedDeclaration": 32093, + "src": "7289:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28549, + "id": 32761, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7408:9:20", + "memberLocation": "7297:9:31", "memberName": "investors", "nodeType": "MemberAccess", - "referencedDeclaration": 25507, - "src": "7400:17:20", + "referencedDeclaration": 27529, + "src": "7289:17:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 28554, + "id": 32766, "isConstant": false, "isLValue": false, "isPure": false, @@ -12064,7 +12227,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7400:31:20", + "src": "7289:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12073,14 +12236,14 @@ }, { "hexValue": "74727565", - "id": 28555, + "id": 32767, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7438:4:20", + "src": "7327:4:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12099,20 +12262,20 @@ "typeString": "bool" } ], - "id": 28547, + "id": 32759, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -12124,14 +12287,14 @@ 1639, 1674 ], - "referencedDeclaration": 1974, - "src": "7391:8:20", + "referencedDeclaration": 2011, + "src": "7280:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, - "id": 28556, + "id": 32768, "isConstant": false, "isLValue": false, "isPure": false, @@ -12140,103 +12303,103 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7391:52:20", + "src": "7280:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28557, + "id": 32769, "nodeType": "ExpressionStatement", - "src": "7391:52:20" + "src": "7280:52:31" }, { "assignments": [ - 28563 + 32775 ], "declarations": [ { "constant": false, - "id": 28563, + "id": 32775, "mutability": "mutable", "name": "tempArr", - "nameLocation": "7480:7:20", + "nameLocation": "7369:7:31", "nodeType": "VariableDeclaration", - "scope": 28638, - "src": "7454:33:20", + "scope": 32850, + "src": "7343:33:31", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor[]" }, "typeName": { "baseType": { - "id": 28561, + "id": 32773, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 28560, + "id": 32772, "name": "Vesting.Investor", "nameLocations": [ - "7454:7:20", - "7462:8:20" + "7343:7:31", + "7351:8:31" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 25503, - "src": "7454:16:20" + "referencedDeclaration": 27525, + "src": "7343:16:31" }, - "referencedDeclaration": 25503, - "src": "7454:16:20", + "referencedDeclaration": 27525, + "src": "7343:16:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_storage_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_storage_ptr", "typeString": "struct Vesting.Investor" } }, - "id": 28562, + "id": 32774, "nodeType": "ArrayTypeName", - "src": "7454:18:20", + "src": "7343:18:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage_ptr", "typeString": "struct Vesting.Investor[]" } }, "visibility": "internal" } ], - "id": 28567, + "id": 32779, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 28564, + "id": 32776, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "7490:7:20", + "referencedDeclaration": 32093, + "src": "7379:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28565, + "id": 32777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7498:18:20", + "memberLocation": "7387:18:31", "memberName": "getInvestorLibrary", "nodeType": "MemberAccess", - "referencedDeclaration": 26060, - "src": "7490:26:20", + "referencedDeclaration": 28095, + "src": "7379:26:31", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr_$", "typeString": "function () view external returns (struct Vesting.Investor memory[] memory)" } }, - "id": 28566, + "id": 32778, "isConstant": false, "isLValue": false, "isPure": false, @@ -12245,41 +12408,41 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7490:28:20", + "src": "7379:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "7454:64:20" + "src": "7343:64:31" }, { "expression": { "arguments": [ { "expression": { - "id": 28569, + "id": 32781, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28563, - "src": "7538:7:20", + "referencedDeclaration": 32775, + "src": "7427:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28570, + "id": 32782, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7546:6:20", + "memberLocation": "7435:6:31", "memberName": "length", "nodeType": "MemberAccess", - "src": "7538:14:20", + "src": "7427:14:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12287,14 +12450,14 @@ }, { "hexValue": "31", - "id": 28571, + "id": 32783, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7563:1:20", + "src": "7452:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -12313,20 +12476,20 @@ "typeString": "int_const 1" } ], - "id": 28568, + "id": 32780, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -12339,13 +12502,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "7529:8:20", + "src": "7418:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28572, + "id": 32784, "isConstant": false, "isLValue": false, "isPure": false, @@ -12354,16 +12517,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7529:36:20", + "src": "7418:36:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28573, + "id": 32785, "nodeType": "ExpressionStatement", - "src": "7529:36:20" + "src": "7418:36:31" }, { "expression": { @@ -12371,28 +12534,28 @@ { "expression": { "baseExpression": { - "id": 28575, + "id": 32787, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28563, - "src": "7585:7:20", + "referencedDeclaration": 32775, + "src": "7474:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28577, + "id": 32789, "indexExpression": { "hexValue": "30", - "id": 28576, + "id": 32788, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7593:1:20", + "src": "7482:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -12404,22 +12567,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7585:10:20", + "src": "7474:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28578, + "id": 32790, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7596:7:20", + "memberLocation": "7485:7:31", "memberName": "account", "nodeType": "MemberAccess", - "referencedDeclaration": 25498, - "src": "7585:18:20", + "referencedDeclaration": 27520, + "src": "7474:18:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12428,14 +12591,14 @@ { "arguments": [ { - "id": 28581, + "id": 32793, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "7619:3:20", + "referencedDeclaration": 31565, + "src": "7508:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -12443,30 +12606,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28580, + "id": 32792, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7611:7:20", + "src": "7500:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28579, + "id": 32791, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7611:7:20", + "src": "7500:7:31", "typeDescriptions": {} } }, - "id": 28582, + "id": 32794, "isConstant": false, "isLValue": false, "isPure": false, @@ -12475,7 +12638,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7611:12:20", + "src": "7500:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -12494,20 +12657,20 @@ "typeString": "address" } ], - "id": 28574, + "id": 32786, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -12520,13 +12683,13 @@ 1674 ], "referencedDeclaration": 320, - "src": "7576:8:20", + "src": "7465:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 28583, + "id": 32795, "isConstant": false, "isLValue": false, "isPure": false, @@ -12535,16 +12698,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7576:48:20", + "src": "7465:48:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28584, + "id": 32796, "nodeType": "ExpressionStatement", - "src": "7576:48:20" + "src": "7465:48:31" }, { "expression": { @@ -12552,28 +12715,28 @@ { "expression": { "baseExpression": { - "id": 28586, + "id": 32798, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28563, - "src": "7644:7:20", + "referencedDeclaration": 32775, + "src": "7533:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28588, + "id": 32800, "indexExpression": { "hexValue": "30", - "id": 28587, + "id": 32799, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7652:1:20", + "src": "7541:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -12585,22 +12748,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7644:10:20", + "src": "7533:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28589, + "id": 32801, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7655:12:20", + "memberLocation": "7544:12:31", "memberName": "tokensToVest", "nodeType": "MemberAccess", - "referencedDeclaration": 25500, - "src": "7644:23:20", + "referencedDeclaration": 27522, + "src": "7533:23:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12608,14 +12771,14 @@ }, { "hexValue": "3130", - "id": 28590, + "id": 32802, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7670:8:20", + "src": "7559:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000_by_1", @@ -12635,20 +12798,20 @@ "typeString": "int_const 10000000000000000000" } ], - "id": 28585, + "id": 32797, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -12661,13 +12824,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "7635:8:20", + "src": "7524:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28591, + "id": 32803, "isConstant": false, "isLValue": false, "isPure": false, @@ -12676,16 +12839,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7635:44:20", + "src": "7524:44:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28592, + "id": 32804, "nodeType": "ExpressionStatement", - "src": "7635:44:20" + "src": "7524:44:31" }, { "expression": { @@ -12693,28 +12856,28 @@ { "expression": { "baseExpression": { - "id": 28594, + "id": 32806, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28563, - "src": "7699:7:20", + "referencedDeclaration": 32775, + "src": "7588:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28596, + "id": 32808, "indexExpression": { "hexValue": "30", - "id": 28595, + "id": 32807, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7707:1:20", + "src": "7596:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -12726,22 +12889,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7699:10:20", + "src": "7588:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28597, + "id": 32809, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7710:13:20", + "memberLocation": "7599:13:31", "memberName": "tokensClaimed", "nodeType": "MemberAccess", - "referencedDeclaration": 25502, - "src": "7699:24:20", + "referencedDeclaration": 27524, + "src": "7588:24:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12749,14 +12912,14 @@ }, { "hexValue": "30", - "id": 28598, + "id": 32810, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7725:1:20", + "src": "7614:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -12775,20 +12938,20 @@ "typeString": "int_const 0" } ], - "id": 28593, + "id": 32805, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -12801,13 +12964,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "7690:8:20", + "src": "7579:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28599, + "id": 32811, "isConstant": false, "isLValue": false, "isPure": false, @@ -12816,16 +12979,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7690:37:20", + "src": "7579:37:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28600, + "id": 32812, "nodeType": "ExpressionStatement", - "src": "7690:37:20" + "src": "7579:37:31" }, { "expression": { @@ -12835,14 +12998,14 @@ { "arguments": [ { - "id": 28606, + "id": 32818, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "7812:7:20", + "referencedDeclaration": 32093, + "src": "7701:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -12850,30 +13013,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28605, + "id": 32817, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7804:7:20", + "src": "7693:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28604, + "id": 32816, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7804:7:20", + "src": "7693:7:31", "typeDescriptions": {} } }, - "id": 28607, + "id": 32819, "isConstant": false, "isLValue": false, "isPure": false, @@ -12882,7 +13045,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7804:16:20", + "src": "7693:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -12892,14 +13055,14 @@ { "arguments": [ { - "id": 28610, + "id": 32822, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "7830:3:20", + "referencedDeclaration": 31565, + "src": "7719:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -12907,30 +13070,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28609, + "id": 32821, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7822:7:20", + "src": "7711:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28608, + "id": 32820, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7822:7:20", + "src": "7711:7:31", "typeDescriptions": {} } }, - "id": 28611, + "id": 32823, "isConstant": false, "isLValue": false, "isPure": false, @@ -12939,7 +13102,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7822:12:20", + "src": "7711:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -12959,33 +13122,33 @@ } ], "expression": { - "id": 28602, + "id": 32814, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "7781:3:20", + "referencedDeclaration": 31568, + "src": "7670:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28603, + "id": 32815, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7785:18:20", + "memberLocation": "7674:18:31", "memberName": "try_removeInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27273, - "src": "7781:22:20", + "referencedDeclaration": 30323, + "src": "7670:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) external returns (bool)" } }, - "id": 28612, + "id": 32824, "isConstant": false, "isLValue": false, "isPure": false, @@ -12994,7 +13157,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7781:54:20", + "src": "7670:54:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13009,18 +13172,18 @@ "typeString": "bool" } ], - "id": 28601, + "id": 32813, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "7774:6:20", + "src": "7663:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28613, + "id": 32825, "isConstant": false, "isLValue": false, "isPure": false, @@ -13029,16 +13192,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7774:62:20", + "src": "7663:62:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28614, + "id": 32826, "nodeType": "ExpressionStatement", - "src": "7774:62:20" + "src": "7663:62:31" }, { "expression": { @@ -13048,14 +13211,14 @@ { "arguments": [ { - "id": 28620, + "id": 32832, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "7914:3:20", + "referencedDeclaration": 31565, + "src": "7803:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -13063,30 +13226,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28619, + "id": 32831, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7906:7:20", + "src": "7795:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28618, + "id": 32830, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7906:7:20", + "src": "7795:7:31", "typeDescriptions": {} } }, - "id": 28621, + "id": 32833, "isConstant": false, "isLValue": false, "isPure": false, @@ -13095,7 +13258,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7906:12:20", + "src": "7795:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -13111,33 +13274,33 @@ } ], "expression": { - "id": 28616, + "id": 32828, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "7888:7:20", + "referencedDeclaration": 32093, + "src": "7777:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28617, + "id": 32829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7896:9:20", + "memberLocation": "7785:9:31", "memberName": "investors", "nodeType": "MemberAccess", - "referencedDeclaration": 25507, - "src": "7888:17:20", + "referencedDeclaration": 27529, + "src": "7777:17:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 28622, + "id": 32834, "isConstant": false, "isLValue": false, "isPure": false, @@ -13146,7 +13309,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7888:31:20", + "src": "7777:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13155,14 +13318,14 @@ }, { "hexValue": "66616c7365", - "id": 28623, + "id": 32835, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7926:5:20", + "src": "7815:5:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13181,20 +13344,20 @@ "typeString": "bool" } ], - "id": 28615, + "id": 32827, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -13206,14 +13369,14 @@ 1639, 1674 ], - "referencedDeclaration": 1974, - "src": "7879:8:20", + "referencedDeclaration": 2011, + "src": "7768:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, - "id": 28624, + "id": 32836, "isConstant": false, "isLValue": false, "isPure": false, @@ -13222,33 +13385,33 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7879:53:20", + "src": "7768:53:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28625, + "id": 32837, "nodeType": "ExpressionStatement", - "src": "7879:53:20" + "src": "7768:53:31" }, { "expression": { - "id": 28630, + "id": 32842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 28626, + "id": 32838, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28563, - "src": "7943:7:20", + "referencedDeclaration": 32775, + "src": "7832:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, @@ -13259,33 +13422,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 28627, + "id": 32839, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "7953:7:20", + "referencedDeclaration": 32093, + "src": "7842:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28628, + "id": 32840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7961:18:20", + "memberLocation": "7850:18:31", "memberName": "getInvestorLibrary", "nodeType": "MemberAccess", - "referencedDeclaration": 26060, - "src": "7953:26:20", + "referencedDeclaration": 28095, + "src": "7842:26:31", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr_$", "typeString": "function () view external returns (struct Vesting.Investor memory[] memory)" } }, - "id": 28629, + "id": 32841, "isConstant": false, "isLValue": false, "isPure": false, @@ -13294,48 +13457,48 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7953:28:20", + "src": "7842:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "src": "7943:38:20", + "src": "7832:38:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28631, + "id": 32843, "nodeType": "ExpressionStatement", - "src": "7943:38:20" + "src": "7832:38:31" }, { "expression": { "arguments": [ { "expression": { - "id": 28633, + "id": 32845, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28563, - "src": "8001:7:20", + "referencedDeclaration": 32775, + "src": "7890:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28634, + "id": 32846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8009:6:20", + "memberLocation": "7898:6:31", "memberName": "length", "nodeType": "MemberAccess", - "src": "8001:14:20", + "src": "7890:14:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13343,14 +13506,14 @@ }, { "hexValue": "30", - "id": 28635, + "id": 32847, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8026:1:20", + "src": "7915:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -13369,20 +13532,20 @@ "typeString": "int_const 0" } ], - "id": 28632, + "id": 32844, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -13395,13 +13558,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "7992:8:20", + "src": "7881:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28636, + "id": 32848, "isConstant": false, "isLValue": false, "isPure": false, @@ -13410,23 +13573,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7992:36:20", + "src": "7881:36:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28637, + "id": 32849, "nodeType": "ExpressionStatement", - "src": "7992:36:20" + "src": "7881:36:31" } ] }, "documentation": { - "id": 28529, + "id": 32741, "nodeType": "StructuredDocumentation", - "src": "7101:48:20", + "src": "6990:48:31", "text": "@dev Verifies removeInvestor() state changes" }, "functionSelector": "2ef9ccdf", @@ -13434,116 +13597,116 @@ "kind": "function", "modifiers": [], "name": "test_vesting_removeInvestor_state_changes", - "nameLocation": "7164:41:20", + "nameLocation": "7053:41:31", "parameters": { - "id": 28530, + "id": 32742, "nodeType": "ParameterList", "parameters": [], - "src": "7205:2:20" + "src": "7094:2:31" }, "returnParameters": { - "id": 28531, + "id": 32743, "nodeType": "ParameterList", "parameters": [], - "src": "7215:0:20" + "src": "7104:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 28940, + "id": 33152, "nodeType": "FunctionDefinition", - "src": "8131:1974:20", + "src": "8020:1974:31", "nodes": [], "body": { - "id": 28939, + "id": 33151, "nodeType": "Block", - "src": "8188:1917:20", + "src": "8077:1917:31", "nodes": [], "statements": [ { "assignments": [ - 28645 + 32857 ], "declarations": [ { "constant": false, - "id": 28645, + "id": 32857, "mutability": "mutable", "name": "tim", - "nameLocation": "8205:3:20", + "nameLocation": "8094:3:31", "nodeType": "VariableDeclaration", - "scope": 28939, - "src": "8199:9:20", + "scope": 33151, + "src": "8088:9:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" }, "typeName": { - "id": 28644, + "id": 32856, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 28643, + "id": 32855, "name": "Actor", "nameLocations": [ - "8199:5:20" + "8088:5:31" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27329, - "src": "8199:5:20" + "referencedDeclaration": 30379, + "src": "8088:5:31" }, - "referencedDeclaration": 27329, - "src": "8199:5:20", + "referencedDeclaration": 30379, + "src": "8088:5:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, "visibility": "internal" } ], - "id": 28650, + "id": 32862, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], - "id": 28648, + "id": 32860, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "8211:9:20", + "src": "8100:9:31", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$27329_$", + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Actor_$30379_$", "typeString": "function () returns (contract Actor)" }, "typeName": { - "id": 28647, + "id": 32859, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 28646, + "id": 32858, "name": "Actor", "nameLocations": [ - "8215:5:20" + "8104:5:31" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27329, - "src": "8215:5:20" + "referencedDeclaration": 30379, + "src": "8104:5:31" }, - "referencedDeclaration": 27329, - "src": "8215:5:20", + "referencedDeclaration": 30379, + "src": "8104:5:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } }, - "id": 28649, + "id": 32861, "isConstant": false, "isLValue": false, "isPure": false, @@ -13552,15 +13715,15 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8211:11:20", + "src": "8100:11:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, "nodeType": "VariableDeclarationStatement", - "src": "8199:23:20" + "src": "8088:23:31" }, { "expression": { @@ -13570,14 +13733,14 @@ { "arguments": [ { - "id": 28656, + "id": 32868, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "8324:7:20", + "referencedDeclaration": 32093, + "src": "8213:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -13585,30 +13748,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28655, + "id": 32867, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8316:7:20", + "src": "8205:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28654, + "id": 32866, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8316:7:20", + "src": "8205:7:31", "typeDescriptions": {} } }, - "id": 28657, + "id": 32869, "isConstant": false, "isLValue": false, "isPure": false, @@ -13617,7 +13780,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8316:16:20", + "src": "8205:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -13627,14 +13790,14 @@ { "arguments": [ { - "id": 28660, + "id": 32872, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "8342:3:20", + "referencedDeclaration": 31565, + "src": "8231:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -13642,30 +13805,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28659, + "id": 32871, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8334:7:20", + "src": "8223:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28658, + "id": 32870, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8334:7:20", + "src": "8223:7:31", "typeDescriptions": {} } }, - "id": 28661, + "id": 32873, "isConstant": false, "isLValue": false, "isPure": false, @@ -13674,7 +13837,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8334:12:20", + "src": "8223:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -13683,14 +13846,14 @@ }, { "hexValue": "3130", - "id": 28662, + "id": 32874, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8348:8:20", + "src": "8237:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000_by_1", @@ -13715,33 +13878,33 @@ } ], "expression": { - "id": 28652, + "id": 32864, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "8296:3:20", + "referencedDeclaration": 31568, + "src": "8185:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28653, + "id": 32865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8300:15:20", + "memberLocation": "8189:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "8296:19:20", + "referencedDeclaration": 30294, + "src": "8185:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 28663, + "id": 32875, "isConstant": false, "isLValue": false, "isPure": false, @@ -13750,7 +13913,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8296:61:20", + "src": "8185:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13765,18 +13928,18 @@ "typeString": "bool" } ], - "id": 28651, + "id": 32863, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "8289:6:20", + "src": "8178:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28664, + "id": 32876, "isConstant": false, "isLValue": false, "isPure": false, @@ -13785,16 +13948,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8289:69:20", + "src": "8178:69:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28665, + "id": 32877, "nodeType": "ExpressionStatement", - "src": "8289:69:20" + "src": "8178:69:31" }, { "expression": { @@ -13804,14 +13967,14 @@ { "arguments": [ { - "id": 28671, + "id": 32883, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "8404:7:20", + "referencedDeclaration": 32093, + "src": "8293:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -13819,30 +13982,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28670, + "id": 32882, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8396:7:20", + "src": "8285:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28669, + "id": 32881, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8396:7:20", + "src": "8285:7:31", "typeDescriptions": {} } }, - "id": 28672, + "id": 32884, "isConstant": false, "isLValue": false, "isPure": false, @@ -13851,7 +14014,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8396:16:20", + "src": "8285:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -13861,14 +14024,14 @@ { "arguments": [ { - "id": 28675, + "id": 32887, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "8422:3:20", + "referencedDeclaration": 31571, + "src": "8311:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -13876,30 +14039,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28674, + "id": 32886, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8414:7:20", + "src": "8303:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28673, + "id": 32885, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8414:7:20", + "src": "8303:7:31", "typeDescriptions": {} } }, - "id": 28676, + "id": 32888, "isConstant": false, "isLValue": false, "isPure": false, @@ -13908,7 +14071,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8414:12:20", + "src": "8303:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -13917,14 +14080,14 @@ }, { "hexValue": "3230", - "id": 28677, + "id": 32889, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8428:8:20", + "src": "8317:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_20000000000000000000_by_1", @@ -13949,33 +14112,33 @@ } ], "expression": { - "id": 28667, + "id": 32879, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "8376:3:20", + "referencedDeclaration": 31568, + "src": "8265:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28668, + "id": 32880, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8380:15:20", + "memberLocation": "8269:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "8376:19:20", + "referencedDeclaration": 30294, + "src": "8265:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 28678, + "id": 32890, "isConstant": false, "isLValue": false, "isPure": false, @@ -13984,7 +14147,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8376:61:20", + "src": "8265:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13999,18 +14162,18 @@ "typeString": "bool" } ], - "id": 28666, + "id": 32878, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "8369:6:20", + "src": "8258:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28679, + "id": 32891, "isConstant": false, "isLValue": false, "isPure": false, @@ -14019,16 +14182,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8369:69:20", + "src": "8258:69:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28680, + "id": 32892, "nodeType": "ExpressionStatement", - "src": "8369:69:20" + "src": "8258:69:31" }, { "expression": { @@ -14038,14 +14201,14 @@ { "arguments": [ { - "id": 28686, + "id": 32898, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "8484:7:20", + "referencedDeclaration": 32093, + "src": "8373:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -14053,30 +14216,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28685, + "id": 32897, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8476:7:20", + "src": "8365:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28684, + "id": 32896, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8476:7:20", + "src": "8365:7:31", "typeDescriptions": {} } }, - "id": 28687, + "id": 32899, "isConstant": false, "isLValue": false, "isPure": false, @@ -14085,7 +14248,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8476:16:20", + "src": "8365:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -14095,14 +14258,14 @@ { "arguments": [ { - "id": 28690, + "id": 32902, "name": "tim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28645, - "src": "8502:3:20", + "referencedDeclaration": 32857, + "src": "8391:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -14110,30 +14273,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28689, + "id": 32901, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8494:7:20", + "src": "8383:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28688, + "id": 32900, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8494:7:20", + "src": "8383:7:31", "typeDescriptions": {} } }, - "id": 28691, + "id": 32903, "isConstant": false, "isLValue": false, "isPure": false, @@ -14142,7 +14305,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8494:12:20", + "src": "8383:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -14151,14 +14314,14 @@ }, { "hexValue": "3330", - "id": 28692, + "id": 32904, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8508:8:20", + "src": "8397:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_30000000000000000000_by_1", @@ -14183,33 +14346,33 @@ } ], "expression": { - "id": 28682, + "id": 32894, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "8456:3:20", + "referencedDeclaration": 31568, + "src": "8345:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28683, + "id": 32895, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8460:15:20", + "memberLocation": "8349:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "8456:19:20", + "referencedDeclaration": 30294, + "src": "8345:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 28693, + "id": 32905, "isConstant": false, "isLValue": false, "isPure": false, @@ -14218,7 +14381,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8456:61:20", + "src": "8345:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14233,18 +14396,18 @@ "typeString": "bool" } ], - "id": 28681, + "id": 32893, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "8449:6:20", + "src": "8338:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28694, + "id": 32906, "isConstant": false, "isLValue": false, "isPure": false, @@ -14253,16 +14416,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8449:69:20", + "src": "8338:69:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28695, + "id": 32907, "nodeType": "ExpressionStatement", - "src": "8449:69:20" + "src": "8338:69:31" }, { "expression": { @@ -14272,14 +14435,14 @@ { "arguments": [ { - "id": 28701, + "id": 32913, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "8595:3:20", + "referencedDeclaration": 31565, + "src": "8484:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -14287,30 +14450,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28700, + "id": 32912, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8587:7:20", + "src": "8476:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28699, + "id": 32911, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8587:7:20", + "src": "8476:7:31", "typeDescriptions": {} } }, - "id": 28702, + "id": 32914, "isConstant": false, "isLValue": false, "isPure": false, @@ -14319,7 +14482,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8587:12:20", + "src": "8476:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -14335,33 +14498,33 @@ } ], "expression": { - "id": 28697, + "id": 32909, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "8569:7:20", + "referencedDeclaration": 32093, + "src": "8458:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28698, + "id": 32910, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8577:9:20", + "memberLocation": "8466:9:31", "memberName": "investors", "nodeType": "MemberAccess", - "referencedDeclaration": 25507, - "src": "8569:17:20", + "referencedDeclaration": 27529, + "src": "8458:17:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 28703, + "id": 32915, "isConstant": false, "isLValue": false, "isPure": false, @@ -14370,7 +14533,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8569:31:20", + "src": "8458:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14379,14 +14542,14 @@ }, { "hexValue": "74727565", - "id": 28704, + "id": 32916, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8607:4:20", + "src": "8496:4:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14405,20 +14568,20 @@ "typeString": "bool" } ], - "id": 28696, + "id": 32908, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -14430,14 +14593,14 @@ 1639, 1674 ], - "referencedDeclaration": 1974, - "src": "8560:8:20", + "referencedDeclaration": 2011, + "src": "8449:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, - "id": 28705, + "id": 32917, "isConstant": false, "isLValue": false, "isPure": false, @@ -14446,16 +14609,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8560:52:20", + "src": "8449:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28706, + "id": 32918, "nodeType": "ExpressionStatement", - "src": "8560:52:20" + "src": "8449:52:31" }, { "expression": { @@ -14465,14 +14628,14 @@ { "arguments": [ { - "id": 28712, + "id": 32924, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "8658:3:20", + "referencedDeclaration": 31571, + "src": "8547:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -14480,30 +14643,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28711, + "id": 32923, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8650:7:20", + "src": "8539:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28710, + "id": 32922, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8650:7:20", + "src": "8539:7:31", "typeDescriptions": {} } }, - "id": 28713, + "id": 32925, "isConstant": false, "isLValue": false, "isPure": false, @@ -14512,7 +14675,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8650:12:20", + "src": "8539:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -14528,33 +14691,33 @@ } ], "expression": { - "id": 28708, + "id": 32920, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "8632:7:20", + "referencedDeclaration": 32093, + "src": "8521:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28709, + "id": 32921, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8640:9:20", + "memberLocation": "8529:9:31", "memberName": "investors", "nodeType": "MemberAccess", - "referencedDeclaration": 25507, - "src": "8632:17:20", + "referencedDeclaration": 27529, + "src": "8521:17:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 28714, + "id": 32926, "isConstant": false, "isLValue": false, "isPure": false, @@ -14563,7 +14726,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8632:31:20", + "src": "8521:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14572,14 +14735,14 @@ }, { "hexValue": "74727565", - "id": 28715, + "id": 32927, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8670:4:20", + "src": "8559:4:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14598,20 +14761,20 @@ "typeString": "bool" } ], - "id": 28707, + "id": 32919, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -14623,14 +14786,14 @@ 1639, 1674 ], - "referencedDeclaration": 1974, - "src": "8623:8:20", + "referencedDeclaration": 2011, + "src": "8512:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, - "id": 28716, + "id": 32928, "isConstant": false, "isLValue": false, "isPure": false, @@ -14639,16 +14802,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8623:52:20", + "src": "8512:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28717, + "id": 32929, "nodeType": "ExpressionStatement", - "src": "8623:52:20" + "src": "8512:52:31" }, { "expression": { @@ -14658,14 +14821,14 @@ { "arguments": [ { - "id": 28723, + "id": 32935, "name": "tim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28645, - "src": "8721:3:20", + "referencedDeclaration": 32857, + "src": "8610:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -14673,30 +14836,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28722, + "id": 32934, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8713:7:20", + "src": "8602:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28721, + "id": 32933, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8713:7:20", + "src": "8602:7:31", "typeDescriptions": {} } }, - "id": 28724, + "id": 32936, "isConstant": false, "isLValue": false, "isPure": false, @@ -14705,7 +14868,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8713:12:20", + "src": "8602:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -14721,33 +14884,33 @@ } ], "expression": { - "id": 28719, + "id": 32931, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "8695:7:20", + "referencedDeclaration": 32093, + "src": "8584:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28720, + "id": 32932, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8703:9:20", + "memberLocation": "8592:9:31", "memberName": "investors", "nodeType": "MemberAccess", - "referencedDeclaration": 25507, - "src": "8695:17:20", + "referencedDeclaration": 27529, + "src": "8584:17:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 28725, + "id": 32937, "isConstant": false, "isLValue": false, "isPure": false, @@ -14756,7 +14919,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8695:31:20", + "src": "8584:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14765,14 +14928,14 @@ }, { "hexValue": "74727565", - "id": 28726, + "id": 32938, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8733:4:20", + "src": "8622:4:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14791,20 +14954,20 @@ "typeString": "bool" } ], - "id": 28718, + "id": 32930, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -14816,14 +14979,14 @@ 1639, 1674 ], - "referencedDeclaration": 1974, - "src": "8686:8:20", + "referencedDeclaration": 2011, + "src": "8575:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, - "id": 28727, + "id": 32939, "isConstant": false, "isLValue": false, "isPure": false, @@ -14832,103 +14995,103 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8686:52:20", + "src": "8575:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28728, + "id": 32940, "nodeType": "ExpressionStatement", - "src": "8686:52:20" + "src": "8575:52:31" }, { "assignments": [ - 28734 + 32946 ], "declarations": [ { "constant": false, - "id": 28734, + "id": 32946, "mutability": "mutable", "name": "tempArr", - "nameLocation": "8775:7:20", + "nameLocation": "8664:7:31", "nodeType": "VariableDeclaration", - "scope": 28939, - "src": "8749:33:20", + "scope": 33151, + "src": "8638:33:31", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor[]" }, "typeName": { "baseType": { - "id": 28732, + "id": 32944, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 28731, + "id": 32943, "name": "Vesting.Investor", "nameLocations": [ - "8749:7:20", - "8757:8:20" + "8638:7:31", + "8646:8:31" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 25503, - "src": "8749:16:20" + "referencedDeclaration": 27525, + "src": "8638:16:31" }, - "referencedDeclaration": 25503, - "src": "8749:16:20", + "referencedDeclaration": 27525, + "src": "8638:16:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_storage_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_storage_ptr", "typeString": "struct Vesting.Investor" } }, - "id": 28733, + "id": 32945, "nodeType": "ArrayTypeName", - "src": "8749:18:20", + "src": "8638:18:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_storage_$dyn_storage_ptr", "typeString": "struct Vesting.Investor[]" } }, "visibility": "internal" } ], - "id": 28738, + "id": 32950, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 28735, + "id": 32947, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "8785:7:20", + "referencedDeclaration": 32093, + "src": "8674:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28736, + "id": 32948, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8793:18:20", + "memberLocation": "8682:18:31", "memberName": "getInvestorLibrary", "nodeType": "MemberAccess", - "referencedDeclaration": 26060, - "src": "8785:26:20", + "referencedDeclaration": 28095, + "src": "8674:26:31", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr_$", "typeString": "function () view external returns (struct Vesting.Investor memory[] memory)" } }, - "id": 28737, + "id": 32949, "isConstant": false, "isLValue": false, "isPure": false, @@ -14937,41 +15100,41 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8785:28:20", + "src": "8674:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "8749:64:20" + "src": "8638:64:31" }, { "expression": { "arguments": [ { "expression": { - "id": 28740, + "id": 32952, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "8833:7:20", + "referencedDeclaration": 32946, + "src": "8722:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28741, + "id": 32953, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8841:6:20", + "memberLocation": "8730:6:31", "memberName": "length", "nodeType": "MemberAccess", - "src": "8833:14:20", + "src": "8722:14:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14979,14 +15142,14 @@ }, { "hexValue": "33", - "id": 28742, + "id": 32954, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8858:1:20", + "src": "8747:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" @@ -15005,20 +15168,20 @@ "typeString": "int_const 3" } ], - "id": 28739, + "id": 32951, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -15031,13 +15194,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "8824:8:20", + "src": "8713:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28743, + "id": 32955, "isConstant": false, "isLValue": false, "isPure": false, @@ -15046,16 +15209,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8824:36:20", + "src": "8713:36:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28744, + "id": 32956, "nodeType": "ExpressionStatement", - "src": "8824:36:20" + "src": "8713:36:31" }, { "expression": { @@ -15063,28 +15226,28 @@ { "expression": { "baseExpression": { - "id": 28746, + "id": 32958, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "8880:7:20", + "referencedDeclaration": 32946, + "src": "8769:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28748, + "id": 32960, "indexExpression": { "hexValue": "30", - "id": 28747, + "id": 32959, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8888:1:20", + "src": "8777:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -15096,22 +15259,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8880:10:20", + "src": "8769:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28749, + "id": 32961, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8891:7:20", + "memberLocation": "8780:7:31", "memberName": "account", "nodeType": "MemberAccess", - "referencedDeclaration": 25498, - "src": "8880:18:20", + "referencedDeclaration": 27520, + "src": "8769:18:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15120,14 +15283,14 @@ { "arguments": [ { - "id": 28752, + "id": 32964, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "8914:3:20", + "referencedDeclaration": 31565, + "src": "8803:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -15135,30 +15298,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28751, + "id": 32963, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8906:7:20", + "src": "8795:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28750, + "id": 32962, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8906:7:20", + "src": "8795:7:31", "typeDescriptions": {} } }, - "id": 28753, + "id": 32965, "isConstant": false, "isLValue": false, "isPure": false, @@ -15167,7 +15330,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8906:12:20", + "src": "8795:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -15186,20 +15349,20 @@ "typeString": "address" } ], - "id": 28745, + "id": 32957, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -15212,13 +15375,13 @@ 1674 ], "referencedDeclaration": 320, - "src": "8871:8:20", + "src": "8760:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 28754, + "id": 32966, "isConstant": false, "isLValue": false, "isPure": false, @@ -15227,16 +15390,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8871:48:20", + "src": "8760:48:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28755, + "id": 32967, "nodeType": "ExpressionStatement", - "src": "8871:48:20" + "src": "8760:48:31" }, { "expression": { @@ -15244,28 +15407,28 @@ { "expression": { "baseExpression": { - "id": 28757, + "id": 32969, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "8939:7:20", + "referencedDeclaration": 32946, + "src": "8828:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28759, + "id": 32971, "indexExpression": { "hexValue": "30", - "id": 28758, + "id": 32970, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8947:1:20", + "src": "8836:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -15277,22 +15440,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8939:10:20", + "src": "8828:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28760, + "id": 32972, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8950:12:20", + "memberLocation": "8839:12:31", "memberName": "tokensToVest", "nodeType": "MemberAccess", - "referencedDeclaration": 25500, - "src": "8939:23:20", + "referencedDeclaration": 27522, + "src": "8828:23:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15300,14 +15463,14 @@ }, { "hexValue": "3130", - "id": 28761, + "id": 32973, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8965:8:20", + "src": "8854:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000_by_1", @@ -15327,20 +15490,20 @@ "typeString": "int_const 10000000000000000000" } ], - "id": 28756, + "id": 32968, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -15353,13 +15516,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "8930:8:20", + "src": "8819:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28762, + "id": 32974, "isConstant": false, "isLValue": false, "isPure": false, @@ -15368,16 +15531,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8930:44:20", + "src": "8819:44:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28763, + "id": 32975, "nodeType": "ExpressionStatement", - "src": "8930:44:20" + "src": "8819:44:31" }, { "expression": { @@ -15385,28 +15548,28 @@ { "expression": { "baseExpression": { - "id": 28765, + "id": 32977, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "8994:7:20", + "referencedDeclaration": 32946, + "src": "8883:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28767, + "id": 32979, "indexExpression": { "hexValue": "30", - "id": 28766, + "id": 32978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9002:1:20", + "src": "8891:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -15418,22 +15581,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8994:10:20", + "src": "8883:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28768, + "id": 32980, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9005:13:20", + "memberLocation": "8894:13:31", "memberName": "tokensClaimed", "nodeType": "MemberAccess", - "referencedDeclaration": 25502, - "src": "8994:24:20", + "referencedDeclaration": 27524, + "src": "8883:24:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15441,14 +15604,14 @@ }, { "hexValue": "30", - "id": 28769, + "id": 32981, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9020:1:20", + "src": "8909:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -15467,20 +15630,20 @@ "typeString": "int_const 0" } ], - "id": 28764, + "id": 32976, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -15493,13 +15656,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "8985:8:20", + "src": "8874:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28770, + "id": 32982, "isConstant": false, "isLValue": false, "isPure": false, @@ -15508,16 +15671,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8985:37:20", + "src": "8874:37:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28771, + "id": 32983, "nodeType": "ExpressionStatement", - "src": "8985:37:20" + "src": "8874:37:31" }, { "expression": { @@ -15525,28 +15688,28 @@ { "expression": { "baseExpression": { - "id": 28773, + "id": 32985, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "9042:7:20", + "referencedDeclaration": 32946, + "src": "8931:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28775, + "id": 32987, "indexExpression": { "hexValue": "31", - "id": 28774, + "id": 32986, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9050:1:20", + "src": "8939:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -15558,22 +15721,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9042:10:20", + "src": "8931:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28776, + "id": 32988, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9053:7:20", + "memberLocation": "8942:7:31", "memberName": "account", "nodeType": "MemberAccess", - "referencedDeclaration": 25498, - "src": "9042:18:20", + "referencedDeclaration": 27520, + "src": "8931:18:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15582,14 +15745,14 @@ { "arguments": [ { - "id": 28779, + "id": 32991, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "9076:3:20", + "referencedDeclaration": 31571, + "src": "8965:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -15597,30 +15760,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28778, + "id": 32990, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9068:7:20", + "src": "8957:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28777, + "id": 32989, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9068:7:20", + "src": "8957:7:31", "typeDescriptions": {} } }, - "id": 28780, + "id": 32992, "isConstant": false, "isLValue": false, "isPure": false, @@ -15629,7 +15792,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9068:12:20", + "src": "8957:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -15648,20 +15811,20 @@ "typeString": "address" } ], - "id": 28772, + "id": 32984, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -15674,13 +15837,13 @@ 1674 ], "referencedDeclaration": 320, - "src": "9033:8:20", + "src": "8922:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 28781, + "id": 32993, "isConstant": false, "isLValue": false, "isPure": false, @@ -15689,16 +15852,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9033:48:20", + "src": "8922:48:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28782, + "id": 32994, "nodeType": "ExpressionStatement", - "src": "9033:48:20" + "src": "8922:48:31" }, { "expression": { @@ -15706,28 +15869,28 @@ { "expression": { "baseExpression": { - "id": 28784, + "id": 32996, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "9101:7:20", + "referencedDeclaration": 32946, + "src": "8990:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28786, + "id": 32998, "indexExpression": { "hexValue": "31", - "id": 28785, + "id": 32997, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9109:1:20", + "src": "8998:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -15739,22 +15902,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9101:10:20", + "src": "8990:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28787, + "id": 32999, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9112:12:20", + "memberLocation": "9001:12:31", "memberName": "tokensToVest", "nodeType": "MemberAccess", - "referencedDeclaration": 25500, - "src": "9101:23:20", + "referencedDeclaration": 27522, + "src": "8990:23:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15762,14 +15925,14 @@ }, { "hexValue": "3230", - "id": 28788, + "id": 33000, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9127:8:20", + "src": "9016:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_20000000000000000000_by_1", @@ -15789,20 +15952,20 @@ "typeString": "int_const 20000000000000000000" } ], - "id": 28783, + "id": 32995, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -15815,13 +15978,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "9092:8:20", + "src": "8981:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28789, + "id": 33001, "isConstant": false, "isLValue": false, "isPure": false, @@ -15830,16 +15993,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9092:44:20", + "src": "8981:44:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28790, + "id": 33002, "nodeType": "ExpressionStatement", - "src": "9092:44:20" + "src": "8981:44:31" }, { "expression": { @@ -15847,28 +16010,28 @@ { "expression": { "baseExpression": { - "id": 28792, + "id": 33004, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "9156:7:20", + "referencedDeclaration": 32946, + "src": "9045:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28794, + "id": 33006, "indexExpression": { "hexValue": "31", - "id": 28793, + "id": 33005, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9164:1:20", + "src": "9053:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -15880,22 +16043,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9156:10:20", + "src": "9045:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28795, + "id": 33007, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9167:13:20", + "memberLocation": "9056:13:31", "memberName": "tokensClaimed", "nodeType": "MemberAccess", - "referencedDeclaration": 25502, - "src": "9156:24:20", + "referencedDeclaration": 27524, + "src": "9045:24:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15903,14 +16066,14 @@ }, { "hexValue": "30", - "id": 28796, + "id": 33008, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9182:1:20", + "src": "9071:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -15929,20 +16092,20 @@ "typeString": "int_const 0" } ], - "id": 28791, + "id": 33003, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -15955,13 +16118,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "9147:8:20", + "src": "9036:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28797, + "id": 33009, "isConstant": false, "isLValue": false, "isPure": false, @@ -15970,16 +16133,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9147:37:20", + "src": "9036:37:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28798, + "id": 33010, "nodeType": "ExpressionStatement", - "src": "9147:37:20" + "src": "9036:37:31" }, { "expression": { @@ -15987,28 +16150,28 @@ { "expression": { "baseExpression": { - "id": 28800, + "id": 33012, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "9204:7:20", + "referencedDeclaration": 32946, + "src": "9093:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28802, + "id": 33014, "indexExpression": { "hexValue": "32", - "id": 28801, + "id": 33013, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9212:1:20", + "src": "9101:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -16020,22 +16183,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9204:10:20", + "src": "9093:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28803, + "id": 33015, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9215:7:20", + "memberLocation": "9104:7:31", "memberName": "account", "nodeType": "MemberAccess", - "referencedDeclaration": 25498, - "src": "9204:18:20", + "referencedDeclaration": 27520, + "src": "9093:18:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16044,14 +16207,14 @@ { "arguments": [ { - "id": 28806, + "id": 33018, "name": "tim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28645, - "src": "9238:3:20", + "referencedDeclaration": 32857, + "src": "9127:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -16059,30 +16222,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28805, + "id": 33017, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9230:7:20", + "src": "9119:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28804, + "id": 33016, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9230:7:20", + "src": "9119:7:31", "typeDescriptions": {} } }, - "id": 28807, + "id": 33019, "isConstant": false, "isLValue": false, "isPure": false, @@ -16091,7 +16254,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9230:12:20", + "src": "9119:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -16110,20 +16273,20 @@ "typeString": "address" } ], - "id": 28799, + "id": 33011, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -16136,13 +16299,13 @@ 1674 ], "referencedDeclaration": 320, - "src": "9195:8:20", + "src": "9084:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 28808, + "id": 33020, "isConstant": false, "isLValue": false, "isPure": false, @@ -16151,16 +16314,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9195:48:20", + "src": "9084:48:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28809, + "id": 33021, "nodeType": "ExpressionStatement", - "src": "9195:48:20" + "src": "9084:48:31" }, { "expression": { @@ -16168,28 +16331,28 @@ { "expression": { "baseExpression": { - "id": 28811, + "id": 33023, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "9263:7:20", + "referencedDeclaration": 32946, + "src": "9152:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28813, + "id": 33025, "indexExpression": { "hexValue": "32", - "id": 28812, + "id": 33024, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9271:1:20", + "src": "9160:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -16201,22 +16364,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9263:10:20", + "src": "9152:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28814, + "id": 33026, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9274:12:20", + "memberLocation": "9163:12:31", "memberName": "tokensToVest", "nodeType": "MemberAccess", - "referencedDeclaration": 25500, - "src": "9263:23:20", + "referencedDeclaration": 27522, + "src": "9152:23:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16224,14 +16387,14 @@ }, { "hexValue": "3330", - "id": 28815, + "id": 33027, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9289:8:20", + "src": "9178:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_30000000000000000000_by_1", @@ -16251,20 +16414,20 @@ "typeString": "int_const 30000000000000000000" } ], - "id": 28810, + "id": 33022, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -16277,13 +16440,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "9254:8:20", + "src": "9143:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28816, + "id": 33028, "isConstant": false, "isLValue": false, "isPure": false, @@ -16292,16 +16455,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9254:44:20", + "src": "9143:44:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28817, + "id": 33029, "nodeType": "ExpressionStatement", - "src": "9254:44:20" + "src": "9143:44:31" }, { "expression": { @@ -16309,28 +16472,28 @@ { "expression": { "baseExpression": { - "id": 28819, + "id": 33031, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "9318:7:20", + "referencedDeclaration": 32946, + "src": "9207:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28821, + "id": 33033, "indexExpression": { "hexValue": "32", - "id": 28820, + "id": 33032, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9326:1:20", + "src": "9215:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -16342,22 +16505,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9318:10:20", + "src": "9207:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28822, + "id": 33034, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9329:13:20", + "memberLocation": "9218:13:31", "memberName": "tokensClaimed", "nodeType": "MemberAccess", - "referencedDeclaration": 25502, - "src": "9318:24:20", + "referencedDeclaration": 27524, + "src": "9207:24:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16365,14 +16528,14 @@ }, { "hexValue": "30", - "id": 28823, + "id": 33035, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9344:1:20", + "src": "9233:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -16391,20 +16554,20 @@ "typeString": "int_const 0" } ], - "id": 28818, + "id": 33030, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -16417,13 +16580,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "9309:8:20", + "src": "9198:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28824, + "id": 33036, "isConstant": false, "isLValue": false, "isPure": false, @@ -16432,16 +16595,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9309:37:20", + "src": "9198:37:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28825, + "id": 33037, "nodeType": "ExpressionStatement", - "src": "9309:37:20" + "src": "9198:37:31" }, { "expression": { @@ -16451,14 +16614,14 @@ { "arguments": [ { - "id": 28831, + "id": 33043, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "9431:7:20", + "referencedDeclaration": 32093, + "src": "9320:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -16466,30 +16629,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28830, + "id": 33042, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9423:7:20", + "src": "9312:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28829, + "id": 33041, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9423:7:20", + "src": "9312:7:31", "typeDescriptions": {} } }, - "id": 28832, + "id": 33044, "isConstant": false, "isLValue": false, "isPure": false, @@ -16498,7 +16661,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9423:16:20", + "src": "9312:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -16508,14 +16671,14 @@ { "arguments": [ { - "id": 28835, + "id": 33047, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "9449:3:20", + "referencedDeclaration": 31565, + "src": "9338:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -16523,30 +16686,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28834, + "id": 33046, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9441:7:20", + "src": "9330:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28833, + "id": 33045, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9441:7:20", + "src": "9330:7:31", "typeDescriptions": {} } }, - "id": 28836, + "id": 33048, "isConstant": false, "isLValue": false, "isPure": false, @@ -16555,7 +16718,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9441:12:20", + "src": "9330:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -16575,33 +16738,33 @@ } ], "expression": { - "id": 28827, + "id": 33039, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "9400:3:20", + "referencedDeclaration": 31568, + "src": "9289:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28828, + "id": 33040, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9404:18:20", + "memberLocation": "9293:18:31", "memberName": "try_removeInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27273, - "src": "9400:22:20", + "referencedDeclaration": 30323, + "src": "9289:22:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) external returns (bool)" } }, - "id": 28837, + "id": 33049, "isConstant": false, "isLValue": false, "isPure": false, @@ -16610,7 +16773,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9400:54:20", + "src": "9289:54:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -16625,18 +16788,18 @@ "typeString": "bool" } ], - "id": 28826, + "id": 33038, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "9393:6:20", + "src": "9282:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28838, + "id": 33050, "isConstant": false, "isLValue": false, "isPure": false, @@ -16645,16 +16808,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9393:62:20", + "src": "9282:62:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28839, + "id": 33051, "nodeType": "ExpressionStatement", - "src": "9393:62:20" + "src": "9282:62:31" }, { "expression": { @@ -16664,14 +16827,14 @@ { "arguments": [ { - "id": 28845, + "id": 33057, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "9533:3:20", + "referencedDeclaration": 31565, + "src": "9422:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -16679,30 +16842,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28844, + "id": 33056, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9525:7:20", + "src": "9414:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28843, + "id": 33055, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9525:7:20", + "src": "9414:7:31", "typeDescriptions": {} } }, - "id": 28846, + "id": 33058, "isConstant": false, "isLValue": false, "isPure": false, @@ -16711,7 +16874,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9525:12:20", + "src": "9414:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -16727,33 +16890,33 @@ } ], "expression": { - "id": 28841, + "id": 33053, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "9507:7:20", + "referencedDeclaration": 32093, + "src": "9396:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28842, + "id": 33054, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9515:9:20", + "memberLocation": "9404:9:31", "memberName": "investors", "nodeType": "MemberAccess", - "referencedDeclaration": 25507, - "src": "9507:17:20", + "referencedDeclaration": 27529, + "src": "9396:17:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 28847, + "id": 33059, "isConstant": false, "isLValue": false, "isPure": false, @@ -16762,7 +16925,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9507:31:20", + "src": "9396:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -16771,14 +16934,14 @@ }, { "hexValue": "66616c7365", - "id": 28848, + "id": 33060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9545:5:20", + "src": "9434:5:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16797,20 +16960,20 @@ "typeString": "bool" } ], - "id": 28840, + "id": 33052, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -16822,14 +16985,14 @@ 1639, 1674 ], - "referencedDeclaration": 1974, - "src": "9498:8:20", + "referencedDeclaration": 2011, + "src": "9387:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, - "id": 28849, + "id": 33061, "isConstant": false, "isLValue": false, "isPure": false, @@ -16838,16 +17001,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9498:53:20", + "src": "9387:53:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28850, + "id": 33062, "nodeType": "ExpressionStatement", - "src": "9498:53:20" + "src": "9387:53:31" }, { "expression": { @@ -16857,14 +17020,14 @@ { "arguments": [ { - "id": 28856, + "id": 33068, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "9597:3:20", + "referencedDeclaration": 31571, + "src": "9486:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -16872,30 +17035,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28855, + "id": 33067, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9589:7:20", + "src": "9478:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28854, + "id": 33066, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9589:7:20", + "src": "9478:7:31", "typeDescriptions": {} } }, - "id": 28857, + "id": 33069, "isConstant": false, "isLValue": false, "isPure": false, @@ -16904,7 +17067,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9589:12:20", + "src": "9478:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -16920,33 +17083,33 @@ } ], "expression": { - "id": 28852, + "id": 33064, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "9571:7:20", + "referencedDeclaration": 32093, + "src": "9460:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28853, + "id": 33065, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9579:9:20", + "memberLocation": "9468:9:31", "memberName": "investors", "nodeType": "MemberAccess", - "referencedDeclaration": 25507, - "src": "9571:17:20", + "referencedDeclaration": 27529, + "src": "9460:17:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 28858, + "id": 33070, "isConstant": false, "isLValue": false, "isPure": false, @@ -16955,7 +17118,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9571:31:20", + "src": "9460:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -16964,14 +17127,14 @@ }, { "hexValue": "74727565", - "id": 28859, + "id": 33071, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9609:4:20", + "src": "9498:4:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16990,20 +17153,20 @@ "typeString": "bool" } ], - "id": 28851, + "id": 33063, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -17015,14 +17178,14 @@ 1639, 1674 ], - "referencedDeclaration": 1974, - "src": "9562:8:20", + "referencedDeclaration": 2011, + "src": "9451:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, - "id": 28860, + "id": 33072, "isConstant": false, "isLValue": false, "isPure": false, @@ -17031,16 +17194,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9562:52:20", + "src": "9451:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28861, + "id": 33073, "nodeType": "ExpressionStatement", - "src": "9562:52:20" + "src": "9451:52:31" }, { "expression": { @@ -17050,14 +17213,14 @@ { "arguments": [ { - "id": 28867, + "id": 33079, "name": "tim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28645, - "src": "9660:3:20", + "referencedDeclaration": 32857, + "src": "9549:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -17065,30 +17228,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28866, + "id": 33078, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9652:7:20", + "src": "9541:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28865, + "id": 33077, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9652:7:20", + "src": "9541:7:31", "typeDescriptions": {} } }, - "id": 28868, + "id": 33080, "isConstant": false, "isLValue": false, "isPure": false, @@ -17097,7 +17260,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9652:12:20", + "src": "9541:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -17113,33 +17276,33 @@ } ], "expression": { - "id": 28863, + "id": 33075, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "9634:7:20", + "referencedDeclaration": 32093, + "src": "9523:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28864, + "id": 33076, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9642:9:20", + "memberLocation": "9531:9:31", "memberName": "investors", "nodeType": "MemberAccess", - "referencedDeclaration": 25507, - "src": "9634:17:20", + "referencedDeclaration": 27529, + "src": "9523:17:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 28869, + "id": 33081, "isConstant": false, "isLValue": false, "isPure": false, @@ -17148,7 +17311,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9634:31:20", + "src": "9523:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -17157,14 +17320,14 @@ }, { "hexValue": "74727565", - "id": 28870, + "id": 33082, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9672:4:20", + "src": "9561:4:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17183,20 +17346,20 @@ "typeString": "bool" } ], - "id": 28862, + "id": 33074, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -17208,14 +17371,14 @@ 1639, 1674 ], - "referencedDeclaration": 1974, - "src": "9625:8:20", + "referencedDeclaration": 2011, + "src": "9514:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", "typeString": "function (bool,bool)" } }, - "id": 28871, + "id": 33083, "isConstant": false, "isLValue": false, "isPure": false, @@ -17224,33 +17387,33 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9625:52:20", + "src": "9514:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28872, + "id": 33084, "nodeType": "ExpressionStatement", - "src": "9625:52:20" + "src": "9514:52:31" }, { "expression": { - "id": 28877, + "id": 33089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 28873, + "id": 33085, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "9688:7:20", + "referencedDeclaration": 32946, + "src": "9577:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, @@ -17261,33 +17424,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 28874, + "id": 33086, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "9698:7:20", + "referencedDeclaration": 32093, + "src": "9587:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28875, + "id": 33087, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9706:18:20", + "memberLocation": "9595:18:31", "memberName": "getInvestorLibrary", "nodeType": "MemberAccess", - "referencedDeclaration": 26060, - "src": "9698:26:20", + "referencedDeclaration": 28095, + "src": "9587:26:31", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr_$", "typeString": "function () view external returns (struct Vesting.Investor memory[] memory)" } }, - "id": 28876, + "id": 33088, "isConstant": false, "isLValue": false, "isPure": false, @@ -17296,48 +17459,48 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9698:28:20", + "src": "9587:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "src": "9688:38:20", + "src": "9577:38:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28878, + "id": 33090, "nodeType": "ExpressionStatement", - "src": "9688:38:20" + "src": "9577:38:31" }, { "expression": { "arguments": [ { "expression": { - "id": 28880, + "id": 33092, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "9746:7:20", + "referencedDeclaration": 32946, + "src": "9635:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28881, + "id": 33093, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9754:6:20", + "memberLocation": "9643:6:31", "memberName": "length", "nodeType": "MemberAccess", - "src": "9746:14:20", + "src": "9635:14:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17345,14 +17508,14 @@ }, { "hexValue": "32", - "id": 28882, + "id": 33094, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9771:1:20", + "src": "9660:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -17371,20 +17534,20 @@ "typeString": "int_const 2" } ], - "id": 28879, + "id": 33091, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -17397,13 +17560,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "9737:8:20", + "src": "9626:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28883, + "id": 33095, "isConstant": false, "isLValue": false, "isPure": false, @@ -17412,16 +17575,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9737:36:20", + "src": "9626:36:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28884, + "id": 33096, "nodeType": "ExpressionStatement", - "src": "9737:36:20" + "src": "9626:36:31" }, { "expression": { @@ -17429,28 +17592,28 @@ { "expression": { "baseExpression": { - "id": 28886, + "id": 33098, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "9793:7:20", + "referencedDeclaration": 32946, + "src": "9682:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28888, + "id": 33100, "indexExpression": { "hexValue": "30", - "id": 28887, + "id": 33099, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9801:1:20", + "src": "9690:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -17462,22 +17625,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9793:10:20", + "src": "9682:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28889, + "id": 33101, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9804:7:20", + "memberLocation": "9693:7:31", "memberName": "account", "nodeType": "MemberAccess", - "referencedDeclaration": 25498, - "src": "9793:18:20", + "referencedDeclaration": 27520, + "src": "9682:18:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17486,14 +17649,14 @@ { "arguments": [ { - "id": 28892, + "id": 33104, "name": "tim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28645, - "src": "9827:3:20", + "referencedDeclaration": 32857, + "src": "9716:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -17501,30 +17664,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28891, + "id": 33103, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9819:7:20", + "src": "9708:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28890, + "id": 33102, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9819:7:20", + "src": "9708:7:31", "typeDescriptions": {} } }, - "id": 28893, + "id": 33105, "isConstant": false, "isLValue": false, "isPure": false, @@ -17533,7 +17696,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9819:12:20", + "src": "9708:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -17552,20 +17715,20 @@ "typeString": "address" } ], - "id": 28885, + "id": 33097, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -17578,13 +17741,13 @@ 1674 ], "referencedDeclaration": 320, - "src": "9784:8:20", + "src": "9673:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 28894, + "id": 33106, "isConstant": false, "isLValue": false, "isPure": false, @@ -17593,16 +17756,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9784:48:20", + "src": "9673:48:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28895, + "id": 33107, "nodeType": "ExpressionStatement", - "src": "9784:48:20" + "src": "9673:48:31" }, { "expression": { @@ -17610,28 +17773,28 @@ { "expression": { "baseExpression": { - "id": 28897, + "id": 33109, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "9852:7:20", + "referencedDeclaration": 32946, + "src": "9741:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28899, + "id": 33111, "indexExpression": { "hexValue": "30", - "id": 28898, + "id": 33110, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9860:1:20", + "src": "9749:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -17643,22 +17806,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9852:10:20", + "src": "9741:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28900, + "id": 33112, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9863:12:20", + "memberLocation": "9752:12:31", "memberName": "tokensToVest", "nodeType": "MemberAccess", - "referencedDeclaration": 25500, - "src": "9852:23:20", + "referencedDeclaration": 27522, + "src": "9741:23:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17666,14 +17829,14 @@ }, { "hexValue": "3330", - "id": 28901, + "id": 33113, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9878:8:20", + "src": "9767:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_30000000000000000000_by_1", @@ -17693,20 +17856,20 @@ "typeString": "int_const 30000000000000000000" } ], - "id": 28896, + "id": 33108, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -17719,13 +17882,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "9843:8:20", + "src": "9732:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28902, + "id": 33114, "isConstant": false, "isLValue": false, "isPure": false, @@ -17734,16 +17897,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9843:44:20", + "src": "9732:44:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28903, + "id": 33115, "nodeType": "ExpressionStatement", - "src": "9843:44:20" + "src": "9732:44:31" }, { "expression": { @@ -17751,28 +17914,28 @@ { "expression": { "baseExpression": { - "id": 28905, + "id": 33117, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "9907:7:20", + "referencedDeclaration": 32946, + "src": "9796:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28907, + "id": 33119, "indexExpression": { "hexValue": "30", - "id": 28906, + "id": 33118, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9915:1:20", + "src": "9804:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -17784,22 +17947,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9907:10:20", + "src": "9796:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28908, + "id": 33120, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9918:13:20", + "memberLocation": "9807:13:31", "memberName": "tokensClaimed", "nodeType": "MemberAccess", - "referencedDeclaration": 25502, - "src": "9907:24:20", + "referencedDeclaration": 27524, + "src": "9796:24:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17807,14 +17970,14 @@ }, { "hexValue": "30", - "id": 28909, + "id": 33121, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9933:1:20", + "src": "9822:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -17833,20 +17996,20 @@ "typeString": "int_const 0" } ], - "id": 28904, + "id": 33116, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -17859,13 +18022,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "9898:8:20", + "src": "9787:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28910, + "id": 33122, "isConstant": false, "isLValue": false, "isPure": false, @@ -17874,16 +18037,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9898:37:20", + "src": "9787:37:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28911, + "id": 33123, "nodeType": "ExpressionStatement", - "src": "9898:37:20" + "src": "9787:37:31" }, { "expression": { @@ -17891,28 +18054,28 @@ { "expression": { "baseExpression": { - "id": 28913, + "id": 33125, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "9955:7:20", + "referencedDeclaration": 32946, + "src": "9844:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28915, + "id": 33127, "indexExpression": { "hexValue": "31", - "id": 28914, + "id": 33126, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9963:1:20", + "src": "9852:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -17924,22 +18087,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9955:10:20", + "src": "9844:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28916, + "id": 33128, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9966:7:20", + "memberLocation": "9855:7:31", "memberName": "account", "nodeType": "MemberAccess", - "referencedDeclaration": 25498, - "src": "9955:18:20", + "referencedDeclaration": 27520, + "src": "9844:18:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17948,14 +18111,14 @@ { "arguments": [ { - "id": 28919, + "id": 33131, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "9989:3:20", + "referencedDeclaration": 31571, + "src": "9878:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -17963,30 +18126,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28918, + "id": 33130, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9981:7:20", + "src": "9870:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28917, + "id": 33129, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9981:7:20", + "src": "9870:7:31", "typeDescriptions": {} } }, - "id": 28920, + "id": 33132, "isConstant": false, "isLValue": false, "isPure": false, @@ -17995,7 +18158,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9981:12:20", + "src": "9870:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -18014,20 +18177,20 @@ "typeString": "address" } ], - "id": 28912, + "id": 33124, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -18040,13 +18203,13 @@ 1674 ], "referencedDeclaration": 320, - "src": "9946:8:20", + "src": "9835:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 28921, + "id": 33133, "isConstant": false, "isLValue": false, "isPure": false, @@ -18055,16 +18218,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9946:48:20", + "src": "9835:48:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28922, + "id": 33134, "nodeType": "ExpressionStatement", - "src": "9946:48:20" + "src": "9835:48:31" }, { "expression": { @@ -18072,28 +18235,28 @@ { "expression": { "baseExpression": { - "id": 28924, + "id": 33136, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "10014:7:20", + "referencedDeclaration": 32946, + "src": "9903:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28926, + "id": 33138, "indexExpression": { "hexValue": "31", - "id": 28925, + "id": 33137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10022:1:20", + "src": "9911:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -18105,22 +18268,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10014:10:20", + "src": "9903:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28927, + "id": 33139, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10025:12:20", + "memberLocation": "9914:12:31", "memberName": "tokensToVest", "nodeType": "MemberAccess", - "referencedDeclaration": 25500, - "src": "10014:23:20", + "referencedDeclaration": 27522, + "src": "9903:23:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18128,14 +18291,14 @@ }, { "hexValue": "3230", - "id": 28928, + "id": 33140, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10040:8:20", + "src": "9929:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_20000000000000000000_by_1", @@ -18155,20 +18318,20 @@ "typeString": "int_const 20000000000000000000" } ], - "id": 28923, + "id": 33135, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -18181,13 +18344,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "10005:8:20", + "src": "9894:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28929, + "id": 33141, "isConstant": false, "isLValue": false, "isPure": false, @@ -18196,16 +18359,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10005:44:20", + "src": "9894:44:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28930, + "id": 33142, "nodeType": "ExpressionStatement", - "src": "10005:44:20" + "src": "9894:44:31" }, { "expression": { @@ -18213,28 +18376,28 @@ { "expression": { "baseExpression": { - "id": 28932, + "id": 33144, "name": "tempArr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 28734, - "src": "10069:7:20", + "referencedDeclaration": 32946, + "src": "9958:7:31", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Investor_$25503_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Investor_$27525_memory_ptr_$dyn_memory_ptr", "typeString": "struct Vesting.Investor memory[] memory" } }, - "id": 28934, + "id": 33146, "indexExpression": { "hexValue": "31", - "id": 28933, + "id": 33145, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10077:1:20", + "src": "9966:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -18246,22 +18409,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10069:10:20", + "src": "9958:10:31", "typeDescriptions": { - "typeIdentifier": "t_struct$_Investor_$25503_memory_ptr", + "typeIdentifier": "t_struct$_Investor_$27525_memory_ptr", "typeString": "struct Vesting.Investor memory" } }, - "id": 28935, + "id": 33147, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10080:13:20", + "memberLocation": "9969:13:31", "memberName": "tokensClaimed", "nodeType": "MemberAccess", - "referencedDeclaration": 25502, - "src": "10069:24:20", + "referencedDeclaration": 27524, + "src": "9958:24:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18269,14 +18432,14 @@ }, { "hexValue": "30", - "id": 28936, + "id": 33148, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10095:1:20", + "src": "9984:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -18295,20 +18458,20 @@ "typeString": "int_const 0" } ], - "id": 28931, + "id": 33143, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -18321,13 +18484,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "10060:8:20", + "src": "9949:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28937, + "id": 33149, "isConstant": false, "isLValue": false, "isPure": false, @@ -18336,23 +18499,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10060:37:20", + "src": "9949:37:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28938, + "id": 33150, "nodeType": "ExpressionStatement", - "src": "10060:37:20" + "src": "9949:37:31" } ] }, "documentation": { - "id": 28640, + "id": 32852, "nodeType": "StructuredDocumentation", - "src": "8044:81:20", + "src": "7933:81:31", "text": "@dev Verifies removeInvestor() pops elements correctly from investorLibrary[]" }, "functionSelector": "b357ca55", @@ -18360,33 +18523,33 @@ "kind": "function", "modifiers": [], "name": "test_vesting_removeInvestor_largeArray", - "nameLocation": "8140:38:20", + "nameLocation": "8029:38:31", "parameters": { - "id": 28641, + "id": 32853, "nodeType": "ParameterList", "parameters": [], - "src": "8178:2:20" + "src": "8067:2:31" }, "returnParameters": { - "id": 28642, + "id": 32854, "nodeType": "ParameterList", "parameters": [], - "src": "8188:0:20" + "src": "8077:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 29002, + "id": 33214, "nodeType": "FunctionDefinition", - "src": "10208:627:20", + "src": "10097:627:31", "nodes": [], "body": { - "id": 29001, + "id": 33213, "nodeType": "Block", - "src": "10269:566:20", + "src": "10158:566:31", "nodes": [], "statements": [ { @@ -18397,14 +18560,14 @@ { "arguments": [ { - "id": 28949, + "id": 33161, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "10347:7:20", + "referencedDeclaration": 32093, + "src": "10236:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -18412,30 +18575,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28948, + "id": 33160, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10339:7:20", + "src": "10228:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28947, + "id": 33159, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10339:7:20", + "src": "10228:7:31", "typeDescriptions": {} } }, - "id": 28950, + "id": 33162, "isConstant": false, "isLValue": false, "isPure": false, @@ -18444,7 +18607,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10339:16:20", + "src": "10228:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -18454,14 +18617,14 @@ { "arguments": [ { - "id": 28953, + "id": 33165, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "10365:3:20", + "referencedDeclaration": 31571, + "src": "10254:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -18469,30 +18632,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28952, + "id": 33164, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10357:7:20", + "src": "10246:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28951, + "id": 33163, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10357:7:20", + "src": "10246:7:31", "typeDescriptions": {} } }, - "id": 28954, + "id": 33166, "isConstant": false, "isLValue": false, "isPure": false, @@ -18501,7 +18664,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10357:12:20", + "src": "10246:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -18510,14 +18673,14 @@ }, { "hexValue": "3230", - "id": 28955, + "id": 33167, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10371:8:20", + "src": "10260:8:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_20000000000000000000_by_1", @@ -18542,33 +18705,33 @@ } ], "expression": { - "id": 28945, + "id": 33157, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "10319:3:20", + "referencedDeclaration": 31568, + "src": "10208:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28946, + "id": 33158, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10323:15:20", + "memberLocation": "10212:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "10319:19:20", + "referencedDeclaration": 30294, + "src": "10208:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 28956, + "id": 33168, "isConstant": false, "isLValue": false, "isPure": false, @@ -18577,7 +18740,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10319:61:20", + "src": "10208:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -18592,18 +18755,18 @@ "typeString": "bool" } ], - "id": 28944, + "id": 33156, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "10312:6:20", + "src": "10201:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 28957, + "id": 33169, "isConstant": false, "isLValue": false, "isPure": false, @@ -18612,16 +18775,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10312:69:20", + "src": "10201:69:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28958, + "id": 33170, "nodeType": "ExpressionStatement", - "src": "10312:69:20" + "src": "10201:69:31" }, { "expression": { @@ -18631,14 +18794,14 @@ { "arguments": [ { - "id": 28964, + "id": 33176, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "10505:3:20", + "referencedDeclaration": 31571, + "src": "10394:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -18646,30 +18809,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28963, + "id": 33175, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10497:7:20", + "src": "10386:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28962, + "id": 33174, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10497:7:20", + "src": "10386:7:31", "typeDescriptions": {} } }, - "id": 28965, + "id": 33177, "isConstant": false, "isLValue": false, "isPure": false, @@ -18678,7 +18841,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10497:12:20", + "src": "10386:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -18694,33 +18857,33 @@ } ], "expression": { - "id": 28960, + "id": 33172, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "10472:7:20", + "referencedDeclaration": 32093, + "src": "10361:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28961, + "id": 33173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10480:16:20", + "memberLocation": "10369:16:31", "memberName": "getAmountToClaim", "nodeType": "MemberAccess", - "referencedDeclaration": 25944, - "src": "10472:24:20", + "referencedDeclaration": 27979, + "src": "10361:24:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 28966, + "id": 33178, "isConstant": false, "isLValue": false, "isPure": false, @@ -18729,7 +18892,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10472:38:20", + "src": "10361:38:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -18738,14 +18901,14 @@ }, { "hexValue": "30", - "id": 28967, + "id": 33179, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10512:1:20", + "src": "10401:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -18764,20 +18927,20 @@ "typeString": "int_const 0" } ], - "id": 28959, + "id": 33171, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -18790,13 +18953,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "10463:8:20", + "src": "10352:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28968, + "id": 33180, "isConstant": false, "isLValue": false, "isPure": false, @@ -18805,16 +18968,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10463:51:20", + "src": "10352:51:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28969, + "id": 33181, "nodeType": "ExpressionStatement", - "src": "10463:51:20" + "src": "10352:51:31" }, { "expression": { @@ -18822,14 +18985,14 @@ { "arguments": [ { - "id": 28975, + "id": 33187, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "10584:7:20", + "referencedDeclaration": 32093, + "src": "10473:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -18837,30 +19000,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 28974, + "id": 33186, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10576:7:20", + "src": "10465:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28973, + "id": 33185, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10576:7:20", + "src": "10465:7:31", "typeDescriptions": {} } }, - "id": 28976, + "id": 33188, "isConstant": false, "isLValue": false, "isPure": false, @@ -18869,7 +19032,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10576:16:20", + "src": "10465:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -18885,33 +19048,33 @@ } ], "expression": { - "id": 28970, + "id": 33182, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "10554:3:20", + "referencedDeclaration": 31568, + "src": "10443:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 28972, + "id": 33184, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10558:17:20", + "memberLocation": "10447:17:31", "memberName": "try_enableVesting", "nodeType": "MemberAccess", - "referencedDeclaration": 27182, - "src": "10554:21:20", + "referencedDeclaration": 30232, + "src": "10443:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 28977, + "id": 33189, "isConstant": false, "isLValue": false, "isPure": false, @@ -18920,16 +19083,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10554:39:20", + "src": "10443:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 28978, + "id": 33190, "nodeType": "ExpressionStatement", - "src": "10554:39:20" + "src": "10443:39:31" }, { "expression": { @@ -18939,14 +19102,14 @@ { "arguments": [ { - "id": 28984, + "id": 33196, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "10716:3:20", + "referencedDeclaration": 31565, + "src": "10605:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -18954,30 +19117,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 28983, + "id": 33195, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10708:7:20", + "src": "10597:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28982, + "id": 33194, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10708:7:20", + "src": "10597:7:31", "typeDescriptions": {} } }, - "id": 28985, + "id": 33197, "isConstant": false, "isLValue": false, "isPure": false, @@ -18986,7 +19149,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10708:12:20", + "src": "10597:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -19002,33 +19165,33 @@ } ], "expression": { - "id": 28980, + "id": 33192, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "10683:7:20", + "referencedDeclaration": 32093, + "src": "10572:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28981, + "id": 33193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10691:16:20", + "memberLocation": "10580:16:31", "memberName": "getAmountToClaim", "nodeType": "MemberAccess", - "referencedDeclaration": 25944, - "src": "10683:24:20", + "referencedDeclaration": 27979, + "src": "10572:24:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 28986, + "id": 33198, "isConstant": false, "isLValue": false, "isPure": false, @@ -19037,7 +19200,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10683:38:20", + "src": "10572:38:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19046,14 +19209,14 @@ }, { "hexValue": "30", - "id": 28987, + "id": 33199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10723:1:20", + "src": "10612:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -19072,20 +19235,20 @@ "typeString": "int_const 0" } ], - "id": 28979, + "id": 33191, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -19098,13 +19261,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "10674:8:20", + "src": "10563:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28988, + "id": 33200, "isConstant": false, "isLValue": false, "isPure": false, @@ -19113,16 +19276,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10674:51:20", + "src": "10563:51:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 28989, + "id": 33201, "nodeType": "ExpressionStatement", - "src": "10674:51:20" + "src": "10563:51:31" }, { "expression": { @@ -19133,14 +19296,14 @@ "arguments": [ { "hexValue": "30", - "id": 28995, + "id": 33207, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10820:1:20", + "src": "10709:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -19155,26 +19318,26 @@ "typeString": "int_const 0" } ], - "id": 28994, + "id": 33206, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10812:7:20", + "src": "10701:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 28993, + "id": 33205, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10812:7:20", + "src": "10701:7:31", "typeDescriptions": {} } }, - "id": 28996, + "id": 33208, "isConstant": false, "isLValue": false, "isPure": true, @@ -19183,7 +19346,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10812:10:20", + "src": "10701:10:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -19199,33 +19362,33 @@ } ], "expression": { - "id": 28991, + "id": 33203, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "10787:7:20", + "referencedDeclaration": 32093, + "src": "10676:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 28992, + "id": 33204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10795:16:20", + "memberLocation": "10684:16:31", "memberName": "getAmountToClaim", "nodeType": "MemberAccess", - "referencedDeclaration": 25944, - "src": "10787:24:20", + "referencedDeclaration": 27979, + "src": "10676:24:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 28997, + "id": 33209, "isConstant": false, "isLValue": false, "isPure": false, @@ -19234,7 +19397,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10787:36:20", + "src": "10676:36:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19243,14 +19406,14 @@ }, { "hexValue": "30", - "id": 28998, + "id": 33210, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10825:1:20", + "src": "10714:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -19269,20 +19432,20 @@ "typeString": "int_const 0" } ], - "id": 28990, + "id": 33202, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -19295,13 +19458,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "10778:8:20", + "src": "10667:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 28999, + "id": 33211, "isConstant": false, "isLValue": false, "isPure": false, @@ -19310,23 +19473,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10778:49:20", + "src": "10667:49:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29000, + "id": 33212, "nodeType": "ExpressionStatement", - "src": "10778:49:20" + "src": "10667:49:31" } ] }, "documentation": { - "id": 28941, + "id": 33153, "nodeType": "StructuredDocumentation", - "src": "10153:49:20", + "src": "10042:49:31", "text": "@dev Verifies getAmountToClaim() restrictions" }, "functionSelector": "5a17a66b", @@ -19334,49 +19497,49 @@ "kind": "function", "modifiers": [], "name": "test_vesting_getAmountToClaim_restrictions", - "nameLocation": "10217:42:20", + "nameLocation": "10106:42:31", "parameters": { - "id": 28942, + "id": 33154, "nodeType": "ParameterList", "parameters": [], - "src": "10259:2:20" + "src": "10148:2:31" }, "returnParameters": { - "id": 28943, + "id": 33155, "nodeType": "ParameterList", "parameters": [], - "src": "10269:0:20" + "src": "10158:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 29126, + "id": 33338, "nodeType": "FunctionDefinition", - "src": "10885:1093:20", + "src": "10774:1093:31", "nodes": [], "body": { - "id": 29125, + "id": 33337, "nodeType": "Block", - "src": "10933:1045:20", + "src": "10822:1045:31", "nodes": [], "statements": [ { "assignments": [ - 29007 + 33219 ], "declarations": [ { "constant": false, - "id": 29007, + "id": 33219, "mutability": "mutable", "name": "_amount", - "nameLocation": "11018:7:20", + "nameLocation": "10907:7:31", "nodeType": "VariableDeclaration", - "scope": 29125, - "src": "11010:15:20", + "scope": 33337, + "src": "10899:15:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19384,10 +19547,10 @@ "typeString": "uint256" }, "typeName": { - "id": 29006, + "id": 33218, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11010:7:20", + "src": "10899:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19396,17 +19559,17 @@ "visibility": "internal" } ], - "id": 29009, + "id": 33221, "initialValue": { "hexValue": "315f3030305f303030", - "id": 29008, + "id": 33220, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11028:15:20", + "src": "10917:15:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", @@ -19415,7 +19578,7 @@ "value": "1_000_000" }, "nodeType": "VariableDeclarationStatement", - "src": "11010:33:20" + "src": "10899:33:31" }, { "expression": { @@ -19425,14 +19588,14 @@ { "arguments": [ { - "id": 29015, + "id": 33227, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "11120:7:20", + "referencedDeclaration": 32093, + "src": "11009:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -19440,30 +19603,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29014, + "id": 33226, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11112:7:20", + "src": "11001:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29013, + "id": 33225, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11112:7:20", + "src": "11001:7:31", "typeDescriptions": {} } }, - "id": 29016, + "id": 33228, "isConstant": false, "isLValue": false, "isPure": false, @@ -19472,7 +19635,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11112:16:20", + "src": "11001:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -19482,14 +19645,14 @@ { "arguments": [ { - "id": 29019, + "id": 33231, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "11138:3:20", + "referencedDeclaration": 31571, + "src": "11027:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -19497,30 +19660,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29018, + "id": 33230, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11130:7:20", + "src": "11019:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29017, + "id": 33229, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11130:7:20", + "src": "11019:7:31", "typeDescriptions": {} } }, - "id": 29020, + "id": 33232, "isConstant": false, "isLValue": false, "isPure": false, @@ -19529,7 +19692,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11130:12:20", + "src": "11019:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -19537,12 +19700,12 @@ } }, { - "id": 29021, + "id": 33233, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29007, - "src": "11144:7:20", + "referencedDeclaration": 33219, + "src": "11033:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19565,33 +19728,33 @@ } ], "expression": { - "id": 29011, + "id": 33223, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "11092:3:20", + "referencedDeclaration": 31568, + "src": "10981:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29012, + "id": 33224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11096:15:20", + "memberLocation": "10985:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "11092:19:20", + "referencedDeclaration": 30294, + "src": "10981:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 29022, + "id": 33234, "isConstant": false, "isLValue": false, "isPure": false, @@ -19600,7 +19763,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11092:60:20", + "src": "10981:60:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -19615,18 +19778,18 @@ "typeString": "bool" } ], - "id": 29010, + "id": 33222, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "11085:6:20", + "src": "10974:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29023, + "id": 33235, "isConstant": false, "isLValue": false, "isPure": false, @@ -19635,16 +19798,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11085:68:20", + "src": "10974:68:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29024, + "id": 33236, "nodeType": "ExpressionStatement", - "src": "11085:68:20" + "src": "10974:68:31" }, { "expression": { @@ -19654,14 +19817,14 @@ { "arguments": [ { - "id": 29030, + "id": 33242, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "11250:3:20", + "referencedDeclaration": 31571, + "src": "11139:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -19669,30 +19832,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29029, + "id": 33241, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11242:7:20", + "src": "11131:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29028, + "id": 33240, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11242:7:20", + "src": "11131:7:31", "typeDescriptions": {} } }, - "id": 29031, + "id": 33243, "isConstant": false, "isLValue": false, "isPure": false, @@ -19701,7 +19864,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11242:12:20", + "src": "11131:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -19717,33 +19880,33 @@ } ], "expression": { - "id": 29026, + "id": 33238, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "11218:7:20", + "referencedDeclaration": 32093, + "src": "11107:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29027, + "id": 33239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11226:15:20", + "memberLocation": "11115:15:31", "memberName": "getTokensToVest", "nodeType": "MemberAccess", - "referencedDeclaration": 26000, - "src": "11218:23:20", + "referencedDeclaration": 28035, + "src": "11107:23:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29032, + "id": 33244, "isConstant": false, "isLValue": false, "isPure": false, @@ -19752,7 +19915,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11218:37:20", + "src": "11107:37:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19760,12 +19923,12 @@ } }, { - "id": 29033, + "id": 33245, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29007, - "src": "11257:7:20", + "referencedDeclaration": 33219, + "src": "11146:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19783,20 +19946,20 @@ "typeString": "uint256" } ], - "id": 29025, + "id": 33237, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -19809,13 +19972,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "11209:8:20", + "src": "11098:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29034, + "id": 33246, "isConstant": false, "isLValue": false, "isPure": false, @@ -19824,16 +19987,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11209:56:20", + "src": "11098:56:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29035, + "id": 33247, "nodeType": "ExpressionStatement", - "src": "11209:56:20" + "src": "11098:56:31" }, { "expression": { @@ -19843,14 +20006,14 @@ { "arguments": [ { - "id": 29041, + "id": 33253, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "11342:7:20", + "referencedDeclaration": 32093, + "src": "11231:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -19858,30 +20021,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29040, + "id": 33252, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11334:7:20", + "src": "11223:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29039, + "id": 33251, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11334:7:20", + "src": "11223:7:31", "typeDescriptions": {} } }, - "id": 29042, + "id": 33254, "isConstant": false, "isLValue": false, "isPure": false, @@ -19890,7 +20053,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11334:16:20", + "src": "11223:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -19906,33 +20069,33 @@ } ], "expression": { - "id": 29037, + "id": 33249, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "11312:3:20", + "referencedDeclaration": 31568, + "src": "11201:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29038, + "id": 33250, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11316:17:20", + "memberLocation": "11205:17:31", "memberName": "try_enableVesting", "nodeType": "MemberAccess", - "referencedDeclaration": 27182, - "src": "11312:21:20", + "referencedDeclaration": 30232, + "src": "11201:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29043, + "id": 33255, "isConstant": false, "isLValue": false, "isPure": false, @@ -19941,7 +20104,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11312:39:20", + "src": "11201:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -19956,18 +20119,18 @@ "typeString": "bool" } ], - "id": 29036, + "id": 33248, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "11305:6:20", + "src": "11194:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29044, + "id": 33256, "isConstant": false, "isLValue": false, "isPure": false, @@ -19976,30 +20139,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11305:47:20", + "src": "11194:47:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29045, + "id": 33257, "nodeType": "ExpressionStatement", - "src": "11305:47:20" + "src": "11194:47:31" }, { "expression": { "arguments": [ { "hexValue": "3132", - "id": 29047, + "id": 33259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11396:8:20", + "src": "11285:8:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_7257600_by_1", @@ -20015,18 +20178,18 @@ "typeString": "int_const 7257600" } ], - "id": 29046, + "id": 33258, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "11391:4:20", + "referencedDeclaration": 4833, + "src": "11280:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29048, + "id": 33260, "isConstant": false, "isLValue": false, "isPure": false, @@ -20035,31 +20198,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11391:14:20", + "src": "11280:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29049, + "id": 33261, "nodeType": "ExpressionStatement", - "src": "11391:14:20" + "src": "11280:14:31" }, { "assignments": [ - 29051 + 33263 ], "declarations": [ { "constant": false, - "id": 29051, + "id": 33263, "mutability": "mutable", "name": "toClaim", - "nameLocation": "11479:7:20", + "nameLocation": "11368:7:31", "nodeType": "VariableDeclaration", - "scope": 29125, - "src": "11471:15:20", + "scope": 33337, + "src": "11360:15:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20067,10 +20230,10 @@ "typeString": "uint256" }, "typeName": { - "id": 29050, + "id": 33262, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11471:7:20", + "src": "11360:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20079,13 +20242,13 @@ "visibility": "internal" } ], - "id": 29068, + "id": 33280, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29067, + "id": 33279, "isConstant": false, "isLValue": false, "isPure": false, @@ -20097,7 +20260,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29056, + "id": 33268, "isConstant": false, "isLValue": false, "isPure": false, @@ -20107,18 +20270,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29054, + "id": 33266, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29052, + "id": 33264, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29007, - "src": "11490:7:20", + "referencedDeclaration": 33219, + "src": "11379:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20128,21 +20291,21 @@ "operator": "*", "rightExpression": { "hexValue": "3132", - "id": 29053, + "id": 33265, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11500:2:20", + "src": "11389:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", "typeString": "int_const 12" }, "value": "12" }, - "src": "11490:12:20", + "src": "11379:12:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20152,35 +20315,35 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29055, + "id": 33267, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11505:3:20", + "src": "11394:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "11490:18:20", + "src": "11379:18:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 29057, + "id": 33269, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11489:20:20", + "src": "11378:20:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20195,21 +20358,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29065, + "id": 33277, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "33", - "id": 29058, + "id": 33270, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11513:1:20", + "src": "11402:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" @@ -20225,7 +20388,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29063, + "id": 33275, "isConstant": false, "isLValue": false, "isPure": false, @@ -20235,18 +20398,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29061, + "id": 33273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29059, + "id": 33271, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29007, - "src": "11518:7:20", + "referencedDeclaration": 33219, + "src": "11407:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20256,21 +20419,21 @@ "operator": "*", "rightExpression": { "hexValue": "38", - "id": 29060, + "id": 33272, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11528:1:20", + "src": "11417:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "11518:11:20", + "src": "11407:11:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20280,68 +20443,68 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29062, + "id": 33274, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11532:3:20", + "src": "11421:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "11518:17:20", + "src": "11407:17:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 29064, + "id": 33276, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11517:19:20", + "src": "11406:19:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11513:23:20", + "src": "11402:23:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 29066, + "id": 33278, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11512:25:20", + "src": "11401:25:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11489:48:20", + "src": "11378:48:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "11471:66:20" + "src": "11360:66:31" }, { "expression": { @@ -20351,14 +20514,14 @@ { "arguments": [ { - "id": 29074, + "id": 33286, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "11590:3:20", + "referencedDeclaration": 31571, + "src": "11479:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -20366,30 +20529,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29073, + "id": 33285, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11582:7:20", + "src": "11471:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29072, + "id": 33284, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11582:7:20", + "src": "11471:7:31", "typeDescriptions": {} } }, - "id": 29075, + "id": 33287, "isConstant": false, "isLValue": false, "isPure": false, @@ -20398,7 +20561,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11582:12:20", + "src": "11471:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -20414,33 +20577,33 @@ } ], "expression": { - "id": 29070, + "id": 33282, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "11557:7:20", + "referencedDeclaration": 32093, + "src": "11446:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29071, + "id": 33283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11565:16:20", + "memberLocation": "11454:16:31", "memberName": "getAmountToClaim", "nodeType": "MemberAccess", - "referencedDeclaration": 25944, - "src": "11557:24:20", + "referencedDeclaration": 27979, + "src": "11446:24:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29076, + "id": 33288, "isConstant": false, "isLValue": false, "isPure": false, @@ -20449,7 +20612,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11557:38:20", + "src": "11446:38:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -20457,12 +20620,12 @@ } }, { - "id": 29077, + "id": 33289, "name": "toClaim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29051, - "src": "11597:7:20", + "referencedDeclaration": 33263, + "src": "11486:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20480,20 +20643,20 @@ "typeString": "uint256" } ], - "id": 29069, + "id": 33281, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -20506,13 +20669,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "11548:8:20", + "src": "11437:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29078, + "id": 33290, "isConstant": false, "isLValue": false, "isPure": false, @@ -20521,30 +20684,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11548:57:20", + "src": "11437:57:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29079, + "id": 33291, "nodeType": "ExpressionStatement", - "src": "11548:57:20" + "src": "11437:57:31" }, { "expression": { "arguments": [ { "hexValue": "3332", - "id": 29081, + "id": 33293, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11699:8:20", + "src": "11588:8:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_19353600_by_1", @@ -20560,18 +20723,18 @@ "typeString": "int_const 19353600" } ], - "id": 29080, + "id": 33292, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "11694:4:20", + "referencedDeclaration": 4833, + "src": "11583:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29082, + "id": 33294, "isConstant": false, "isLValue": false, "isPure": false, @@ -20580,31 +20743,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11694:14:20", + "src": "11583:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29083, + "id": 33295, "nodeType": "ExpressionStatement", - "src": "11694:14:20" + "src": "11583:14:31" }, { "expression": { - "id": 29101, + "id": 33313, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 29084, + "id": 33296, "name": "toClaim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29051, - "src": "11775:7:20", + "referencedDeclaration": 33263, + "src": "11664:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20617,7 +20780,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29100, + "id": 33312, "isConstant": false, "isLValue": false, "isPure": false, @@ -20629,7 +20792,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29089, + "id": 33301, "isConstant": false, "isLValue": false, "isPure": false, @@ -20639,18 +20802,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29087, + "id": 33299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29085, + "id": 33297, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29007, - "src": "11786:7:20", + "referencedDeclaration": 33219, + "src": "11675:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20660,21 +20823,21 @@ "operator": "*", "rightExpression": { "hexValue": "3132", - "id": 29086, + "id": 33298, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11796:2:20", + "src": "11685:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", "typeString": "int_const 12" }, "value": "12" }, - "src": "11786:12:20", + "src": "11675:12:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20684,35 +20847,35 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29088, + "id": 33300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11801:3:20", + "src": "11690:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "11786:18:20", + "src": "11675:18:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 29090, + "id": 33302, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11785:20:20", + "src": "11674:20:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20727,21 +20890,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29098, + "id": 33310, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3131", - "id": 29091, + "id": 33303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11809:2:20", + "src": "11698:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_11_by_1", "typeString": "int_const 11" @@ -20757,7 +20920,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29096, + "id": 33308, "isConstant": false, "isLValue": false, "isPure": false, @@ -20767,18 +20930,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29094, + "id": 33306, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29092, + "id": 33304, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29007, - "src": "11815:7:20", + "referencedDeclaration": 33219, + "src": "11704:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20788,21 +20951,21 @@ "operator": "*", "rightExpression": { "hexValue": "38", - "id": 29093, + "id": 33305, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11825:1:20", + "src": "11714:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "11815:11:20", + "src": "11704:11:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20812,75 +20975,75 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29095, + "id": 33307, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11829:3:20", + "src": "11718:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "11815:17:20", + "src": "11704:17:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 29097, + "id": 33309, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11814:19:20", + "src": "11703:19:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11809:24:20", + "src": "11698:24:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 29099, + "id": 33311, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11808:26:20", + "src": "11697:26:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11785:49:20", + "src": "11674:49:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11775:59:20", + "src": "11664:59:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 29102, + "id": 33314, "nodeType": "ExpressionStatement", - "src": "11775:59:20" + "src": "11664:59:31" }, { "expression": { @@ -20890,14 +21053,14 @@ { "arguments": [ { - "id": 29108, + "id": 33320, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "11887:3:20", + "referencedDeclaration": 31571, + "src": "11776:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -20905,30 +21068,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29107, + "id": 33319, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11879:7:20", + "src": "11768:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29106, + "id": 33318, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11879:7:20", + "src": "11768:7:31", "typeDescriptions": {} } }, - "id": 29109, + "id": 33321, "isConstant": false, "isLValue": false, "isPure": false, @@ -20937,7 +21100,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11879:12:20", + "src": "11768:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -20953,33 +21116,33 @@ } ], "expression": { - "id": 29104, + "id": 33316, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "11854:7:20", + "referencedDeclaration": 32093, + "src": "11743:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29105, + "id": 33317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11862:16:20", + "memberLocation": "11751:16:31", "memberName": "getAmountToClaim", "nodeType": "MemberAccess", - "referencedDeclaration": 25944, - "src": "11854:24:20", + "referencedDeclaration": 27979, + "src": "11743:24:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29110, + "id": 33322, "isConstant": false, "isLValue": false, "isPure": false, @@ -20988,7 +21151,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11854:38:20", + "src": "11743:38:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -20996,12 +21159,12 @@ } }, { - "id": 29111, + "id": 33323, "name": "toClaim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29051, - "src": "11894:7:20", + "referencedDeclaration": 33263, + "src": "11783:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21019,20 +21182,20 @@ "typeString": "uint256" } ], - "id": 29103, + "id": 33315, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -21045,13 +21208,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "11845:8:20", + "src": "11734:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29112, + "id": 33324, "isConstant": false, "isLValue": false, "isPure": false, @@ -21060,16 +21223,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11845:57:20", + "src": "11734:57:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29113, + "id": 33325, "nodeType": "ExpressionStatement", - "src": "11845:57:20" + "src": "11734:57:31" }, { "expression": { @@ -21079,14 +21242,14 @@ { "arguments": [ { - "id": 29119, + "id": 33331, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "11955:3:20", + "referencedDeclaration": 31571, + "src": "11844:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -21094,30 +21257,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29118, + "id": 33330, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11947:7:20", + "src": "11836:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29117, + "id": 33329, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11947:7:20", + "src": "11836:7:31", "typeDescriptions": {} } }, - "id": 29120, + "id": 33332, "isConstant": false, "isLValue": false, "isPure": false, @@ -21126,7 +21289,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11947:12:20", + "src": "11836:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -21142,33 +21305,33 @@ } ], "expression": { - "id": 29115, + "id": 33327, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "11922:7:20", + "referencedDeclaration": 32093, + "src": "11811:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29116, + "id": 33328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11930:16:20", + "memberLocation": "11819:16:31", "memberName": "getAmountToClaim", "nodeType": "MemberAccess", - "referencedDeclaration": 25944, - "src": "11922:24:20", + "referencedDeclaration": 27979, + "src": "11811:24:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29121, + "id": 33333, "isConstant": false, "isLValue": false, "isPure": false, @@ -21177,7 +21340,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11922:38:20", + "src": "11811:38:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21185,12 +21348,12 @@ } }, { - "id": 29122, + "id": 33334, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29007, - "src": "11962:7:20", + "referencedDeclaration": 33219, + "src": "11851:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21208,20 +21371,20 @@ "typeString": "uint256" } ], - "id": 29114, + "id": 33326, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -21234,13 +21397,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "11913:8:20", + "src": "11802:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29123, + "id": 33335, "isConstant": false, "isLValue": false, "isPure": false, @@ -21249,23 +21412,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11913:57:20", + "src": "11802:57:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29124, + "id": 33336, "nodeType": "ExpressionStatement", - "src": "11913:57:20" + "src": "11802:57:31" } ] }, "documentation": { - "id": 29003, + "id": 33215, "nodeType": "StructuredDocumentation", - "src": "10843:36:20", + "src": "10732:36:31", "text": "@dev Verifies getAmountToClaim()" }, "functionSelector": "c7283c78", @@ -21273,65 +21436,96 @@ "kind": "function", "modifiers": [], "name": "test_vesting_getAmountToClaim", - "nameLocation": "10894:29:20", + "nameLocation": "10783:29:31", "parameters": { - "id": 29004, + "id": 33216, "nodeType": "ParameterList", "parameters": [], - "src": "10923:2:20" + "src": "10812:2:31" }, "returnParameters": { - "id": 29005, + "id": 33217, "nodeType": "ParameterList", "parameters": [], - "src": "10933:0:20" + "src": "10822:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 29226, + "id": 33440, "nodeType": "FunctionDefinition", - "src": "12058:1114:20", + "src": "11947:1092:31", "nodes": [], "body": { - "id": 29225, + "id": 33439, "nodeType": "Block", - "src": "12108:1064:20", + "src": "11997:1042:31", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "hexValue": "307863303065393443623636324333353230323832453666353731373231343030344137663236383838", - "id": 29131, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 33343, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32093, + "src": "12072:7:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28096", + "typeString": "contract Vesting" + } + }, + "id": 33344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12080:10:31", + "memberName": "proveToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 27505, + "src": "12072:18:31", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 33345, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "12183:42:20", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12072:20:31", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "value": "0xc00e94Cb662C3520282E6f5717214004A7f26888" + } }, { "arguments": [ { - "id": 29134, + "id": 33348, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "12235:7:20", + "referencedDeclaration": 32093, + "src": "12102:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -21339,30 +21533,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29133, + "id": 33347, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12227:7:20", + "src": "12094:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29132, + "id": 33346, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12227:7:20", + "src": "12094:7:31", "typeDescriptions": {} } }, - "id": 29135, + "id": 33349, "isConstant": false, "isLValue": false, "isPure": false, @@ -21371,7 +21565,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12227:16:20", + "src": "12094:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -21380,14 +21574,14 @@ }, { "hexValue": "355f3030305f303030", - "id": 29136, + "id": 33350, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12245:15:20", + "src": "12112:15:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_5000000000000000000000000_by_1", @@ -21411,22 +21605,22 @@ "typeString": "int_const 5000000000000000000000000" } ], - "id": 29130, + "id": 33342, "name": "deal", "nodeType": "Identifier", "overloadedDeclarations": [ - 5023, - 5040, - 5143 + 5060, + 5077, + 5180 ], - "referencedDeclaration": 5040, - "src": "12178:4:20", + "referencedDeclaration": 5077, + "src": "12067:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 29137, + "id": 33351, "isConstant": false, "isLValue": false, "isPure": false, @@ -21435,16 +21629,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12178:83:20", + "src": "12067:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29138, + "id": 33352, "nodeType": "ExpressionStatement", - "src": "12178:83:20" + "src": "12067:61:31" }, { "expression": { @@ -21452,14 +21646,14 @@ { "arguments": [ { - "id": 29144, + "id": 33358, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "12331:3:20", + "referencedDeclaration": 31571, + "src": "12198:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -21467,30 +21661,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29143, + "id": 33357, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12323:7:20", + "src": "12190:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29142, + "id": 33356, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12323:7:20", + "src": "12190:7:31", "typeDescriptions": {} } }, - "id": 29145, + "id": 33359, "isConstant": false, "isLValue": false, "isPure": false, @@ -21499,7 +21693,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12323:12:20", + "src": "12190:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -21515,33 +21709,33 @@ } ], "expression": { - "id": 29139, + "id": 33353, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "12309:2:20", + "src": "12176:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 29141, + "id": 33355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "12312:10:20", + "memberLocation": "12179:10:31", "memberName": "startPrank", "nodeType": "MemberAccess", - "referencedDeclaration": 9043, - "src": "12309:13:20", + "referencedDeclaration": 9080, + "src": "12176:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 29146, + "id": 33360, "isConstant": false, "isLValue": false, "isPure": false, @@ -21550,30 +21744,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12309:27:20", + "src": "12176:27:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29147, + "id": 33361, "nodeType": "ExpressionStatement", - "src": "12309:27:20" + "src": "12176:27:31" }, { "expression": { "arguments": [ { "hexValue": "56657374696e672e736f6c3a3a6f6e6c79496e766573746f722829206d73672e73656e646572206d75737420626520616e20696e766573746f72", - "id": 29151, + "id": 33365, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12418:60:20", + "src": "12285:60:31", "typeDescriptions": { "typeIdentifier": "t_stringliteral_04c0e7337b94cd08ab709ab9e01a52972b8997f541f0ec03cfdf895720fa5020", "typeString": "literal_string \"Vesting.sol::onlyInvestor() msg.sender must be an investor\"" @@ -21589,33 +21783,33 @@ } ], "expression": { - "id": 29148, + "id": 33362, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "12402:2:20", + "src": "12269:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 29150, + "id": 33364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "12405:12:20", + "memberLocation": "12272:12:31", "memberName": "expectRevert", "nodeType": "MemberAccess", - "referencedDeclaration": 9079, - "src": "12402:15:20", + "referencedDeclaration": 9116, + "src": "12269:15:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) external" } }, - "id": 29152, + "id": 33366, "isConstant": false, "isLValue": false, "isPure": false, @@ -21624,16 +21818,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12402:77:20", + "src": "12269:77:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29153, + "id": 33367, "nodeType": "ExpressionStatement", - "src": "12402:77:20" + "src": "12269:77:31" }, { "expression": { @@ -21641,33 +21835,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29154, + "id": 33368, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "12490:7:20", + "referencedDeclaration": 32093, + "src": "12357:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29156, + "id": 33370, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "12498:5:20", + "memberLocation": "12365:5:31", "memberName": "claim", "nodeType": "MemberAccess", - "referencedDeclaration": 25626, - "src": "12490:13:20", + "referencedDeclaration": 27648, + "src": "12357:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, - "id": 29157, + "id": 33371, "isConstant": false, "isLValue": false, "isPure": false, @@ -21676,16 +21870,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12490:15:20", + "src": "12357:15:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29158, + "id": 33372, "nodeType": "ExpressionStatement", - "src": "12490:15:20" + "src": "12357:15:31" }, { "expression": { @@ -21695,14 +21889,14 @@ { "arguments": [ { - "id": 29164, + "id": 33378, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "12585:7:20", + "referencedDeclaration": 32093, + "src": "12452:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -21710,30 +21904,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29163, + "id": 33377, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12577:7:20", + "src": "12444:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29162, + "id": 33376, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12577:7:20", + "src": "12444:7:31", "typeDescriptions": {} } }, - "id": 29165, + "id": 33379, "isConstant": false, "isLValue": false, "isPure": false, @@ -21742,7 +21936,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12577:16:20", + "src": "12444:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -21752,14 +21946,14 @@ { "arguments": [ { - "id": 29168, + "id": 33382, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "12603:3:20", + "referencedDeclaration": 31571, + "src": "12470:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -21767,30 +21961,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29167, + "id": 33381, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12595:7:20", + "src": "12462:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29166, + "id": 33380, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12595:7:20", + "src": "12462:7:31", "typeDescriptions": {} } }, - "id": 29169, + "id": 33383, "isConstant": false, "isLValue": false, "isPure": false, @@ -21799,7 +21993,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12595:12:20", + "src": "12462:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -21808,14 +22002,14 @@ }, { "hexValue": "315f3030305f303030", - "id": 29170, + "id": 33384, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12609:15:20", + "src": "12476:15:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", @@ -21840,33 +22034,33 @@ } ], "expression": { - "id": 29160, + "id": 33374, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "12557:3:20", + "referencedDeclaration": 31568, + "src": "12424:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29161, + "id": 33375, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "12561:15:20", + "memberLocation": "12428:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "12557:19:20", + "referencedDeclaration": 30294, + "src": "12424:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 29171, + "id": 33385, "isConstant": false, "isLValue": false, "isPure": false, @@ -21875,7 +22069,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12557:68:20", + "src": "12424:68:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -21890,18 +22084,18 @@ "typeString": "bool" } ], - "id": 29159, + "id": 33373, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "12550:6:20", + "src": "12417:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29172, + "id": 33386, "isConstant": false, "isLValue": false, "isPure": false, @@ -21910,30 +22104,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12550:76:20", + "src": "12417:76:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29173, + "id": 33387, "nodeType": "ExpressionStatement", - "src": "12550:76:20" + "src": "12417:76:31" }, { "expression": { "arguments": [ { "hexValue": "56657374696e672e736f6c3a3a636c61696d28292076657374696e67206973206e6f7420656e61626c6564", - "id": 29177, + "id": 33391, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12708:45:20", + "src": "12575:45:31", "typeDescriptions": { "typeIdentifier": "t_stringliteral_34ce9ff9fcf1e453c578e481f1424d1ad92317cc4ad3678a8839da76e7fbb7d6", "typeString": "literal_string \"Vesting.sol::claim() vesting is not enabled\"" @@ -21949,33 +22143,33 @@ } ], "expression": { - "id": 29174, + "id": 33388, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "12692:2:20", + "src": "12559:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 29176, + "id": 33390, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "12695:12:20", + "memberLocation": "12562:12:31", "memberName": "expectRevert", "nodeType": "MemberAccess", - "referencedDeclaration": 9079, - "src": "12692:15:20", + "referencedDeclaration": 9116, + "src": "12559:15:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) external" } }, - "id": 29178, + "id": 33392, "isConstant": false, "isLValue": false, "isPure": false, @@ -21984,16 +22178,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12692:62:20", + "src": "12559:62:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29179, + "id": 33393, "nodeType": "ExpressionStatement", - "src": "12692:62:20" + "src": "12559:62:31" }, { "expression": { @@ -22001,33 +22195,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29180, + "id": 33394, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "12765:7:20", + "referencedDeclaration": 32093, + "src": "12632:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29182, + "id": 33396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "12773:5:20", + "memberLocation": "12640:5:31", "memberName": "claim", "nodeType": "MemberAccess", - "referencedDeclaration": 25626, - "src": "12765:13:20", + "referencedDeclaration": 27648, + "src": "12632:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, - "id": 29183, + "id": 33397, "isConstant": false, "isLValue": false, "isPure": false, @@ -22036,16 +22230,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12765:15:20", + "src": "12632:15:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29184, + "id": 33398, "nodeType": "ExpressionStatement", - "src": "12765:15:20" + "src": "12632:15:31" }, { "expression": { @@ -22055,14 +22249,14 @@ { "arguments": [ { - "id": 29190, + "id": 33404, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "12857:7:20", + "referencedDeclaration": 32093, + "src": "12724:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -22070,30 +22264,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29189, + "id": 33403, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12849:7:20", + "src": "12716:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29188, + "id": 33402, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12849:7:20", + "src": "12716:7:31", "typeDescriptions": {} } }, - "id": 29191, + "id": 33405, "isConstant": false, "isLValue": false, "isPure": false, @@ -22102,7 +22296,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12849:16:20", + "src": "12716:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -22118,33 +22312,33 @@ } ], "expression": { - "id": 29186, + "id": 33400, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "12827:3:20", + "referencedDeclaration": 31568, + "src": "12694:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29187, + "id": 33401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "12831:17:20", + "memberLocation": "12698:17:31", "memberName": "try_enableVesting", "nodeType": "MemberAccess", - "referencedDeclaration": 27182, - "src": "12827:21:20", + "referencedDeclaration": 30232, + "src": "12694:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29192, + "id": 33406, "isConstant": false, "isLValue": false, "isPure": false, @@ -22153,7 +22347,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12827:39:20", + "src": "12694:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -22168,18 +22362,18 @@ "typeString": "bool" } ], - "id": 29185, + "id": 33399, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "12820:6:20", + "src": "12687:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29193, + "id": 33407, "isConstant": false, "isLValue": false, "isPure": false, @@ -22188,16 +22382,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12820:47:20", + "src": "12687:47:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29194, + "id": 33408, "nodeType": "ExpressionStatement", - "src": "12820:47:20" + "src": "12687:47:31" }, { "expression": { @@ -22205,33 +22399,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29195, + "id": 33409, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "12917:7:20", + "referencedDeclaration": 32093, + "src": "12784:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29197, + "id": 33411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "12925:5:20", + "memberLocation": "12792:5:31", "memberName": "claim", "nodeType": "MemberAccess", - "referencedDeclaration": 25626, - "src": "12917:13:20", + "referencedDeclaration": 27648, + "src": "12784:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, - "id": 29198, + "id": 33412, "isConstant": false, "isLValue": false, "isPure": false, @@ -22240,30 +22434,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12917:15:20", + "src": "12784:15:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29199, + "id": 33413, "nodeType": "ExpressionStatement", - "src": "12917:15:20" + "src": "12784:15:31" }, { "expression": { "arguments": [ { "hexValue": "3532", - "id": 29201, + "id": 33415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12950:8:20", + "src": "12817:8:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_31449600_by_1", @@ -22279,18 +22473,18 @@ "typeString": "int_const 31449600" } ], - "id": 29200, + "id": 33414, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "12945:4:20", + "referencedDeclaration": 4833, + "src": "12812:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29202, + "id": 33416, "isConstant": false, "isLValue": false, "isPure": false, @@ -22299,16 +22493,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12945:14:20", + "src": "12812:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29203, + "id": 33417, "nodeType": "ExpressionStatement", - "src": "12945:14:20" + "src": "12812:14:31" }, { "expression": { @@ -22316,33 +22510,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29204, + "id": 33418, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "13010:7:20", + "referencedDeclaration": 32093, + "src": "12877:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29206, + "id": 33420, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "13018:5:20", + "memberLocation": "12885:5:31", "memberName": "claim", "nodeType": "MemberAccess", - "referencedDeclaration": 25626, - "src": "13010:13:20", + "referencedDeclaration": 27648, + "src": "12877:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, - "id": 29207, + "id": 33421, "isConstant": false, "isLValue": false, "isPure": false, @@ -22351,30 +22545,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13010:15:20", + "src": "12877:15:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29208, + "id": 33422, "nodeType": "ExpressionStatement", - "src": "13010:15:20" + "src": "12877:15:31" }, { "expression": { "arguments": [ { "hexValue": "56657374696e672e736f6c3a3a636c61696d282920696e766573746f7220686173206e6f20746f6b656e7320746f20636c61696d", - "id": 29212, + "id": 33426, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "13054:54:20", + "src": "12921:54:31", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7fe10741cbe6c2a9cecbadf80743676cd6f5fd9119dd5a58d21ffa6d6e330a51", "typeString": "literal_string \"Vesting.sol::claim() investor has no tokens to claim\"" @@ -22390,33 +22584,33 @@ } ], "expression": { - "id": 29209, + "id": 33423, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "13038:2:20", + "src": "12905:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 29211, + "id": 33425, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "13041:12:20", + "memberLocation": "12908:12:31", "memberName": "expectRevert", "nodeType": "MemberAccess", - "referencedDeclaration": 9079, - "src": "13038:15:20", + "referencedDeclaration": 9116, + "src": "12905:15:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory) external" } }, - "id": 29213, + "id": 33427, "isConstant": false, "isLValue": false, "isPure": false, @@ -22425,16 +22619,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13038:71:20", + "src": "12905:71:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29214, + "id": 33428, "nodeType": "ExpressionStatement", - "src": "13038:71:20" + "src": "12905:71:31" }, { "expression": { @@ -22442,33 +22636,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29215, + "id": 33429, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "13120:7:20", + "referencedDeclaration": 32093, + "src": "12987:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29217, + "id": 33431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "13128:5:20", + "memberLocation": "12995:5:31", "memberName": "claim", "nodeType": "MemberAccess", - "referencedDeclaration": 25626, - "src": "13120:13:20", + "referencedDeclaration": 27648, + "src": "12987:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, - "id": 29218, + "id": 33432, "isConstant": false, "isLValue": false, "isPure": false, @@ -22477,16 +22671,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13120:15:20", + "src": "12987:15:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29219, + "id": 33433, "nodeType": "ExpressionStatement", - "src": "13120:15:20" + "src": "12987:15:31" }, { "expression": { @@ -22494,33 +22688,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29220, + "id": 33434, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "13148:2:20", + "src": "13015:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 29222, + "id": 33436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "13151:9:20", + "memberLocation": "13018:9:31", "memberName": "stopPrank", "nodeType": "MemberAccess", - "referencedDeclaration": 9060, - "src": "13148:12:20", + "referencedDeclaration": 9097, + "src": "13015:12:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, - "id": 29223, + "id": 33437, "isConstant": false, "isLValue": false, "isPure": false, @@ -22529,23 +22723,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13148:14:20", + "src": "13015:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29224, + "id": 33438, "nodeType": "ExpressionStatement", - "src": "13148:14:20" + "src": "13015:14:31" } ] }, "documentation": { - "id": 29127, + "id": 33339, "nodeType": "StructuredDocumentation", - "src": "12014:38:20", + "src": "11903:38:31", "text": "@dev Verifies claim() restrictions" }, "functionSelector": "8a8fa9b2", @@ -22553,49 +22747,49 @@ "kind": "function", "modifiers": [], "name": "test_vesting_claim_restrictions", - "nameLocation": "12067:31:20", + "nameLocation": "11956:31:31", "parameters": { - "id": 29128, + "id": 33340, "nodeType": "ParameterList", "parameters": [], - "src": "12098:2:20" + "src": "11987:2:31" }, "returnParameters": { - "id": 29129, + "id": 33341, "nodeType": "ParameterList", "parameters": [], - "src": "12108:0:20" + "src": "11997:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 29455, + "id": 33671, "nodeType": "FunctionDefinition", - "src": "13225:1924:20", + "src": "13092:1902:31", "nodes": [], "body": { - "id": 29454, + "id": 33670, "nodeType": "Block", - "src": "13276:1873:20", + "src": "13143:1851:31", "nodes": [], "statements": [ { "assignments": [ - 29231 + 33445 ], "declarations": [ { "constant": false, - "id": 29231, + "id": 33445, "mutability": "mutable", "name": "_amount", - "nameLocation": "13292:7:20", + "nameLocation": "13159:7:31", "nodeType": "VariableDeclaration", - "scope": 29454, - "src": "13287:12:20", + "scope": 33670, + "src": "13154:12:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22603,10 +22797,10 @@ "typeString": "uint256" }, "typeName": { - "id": 29230, + "id": 33444, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "13287:4:20", + "src": "13154:4:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22615,17 +22809,17 @@ "visibility": "internal" } ], - "id": 29233, + "id": 33447, "initialValue": { "hexValue": "315f3030305f303030", - "id": 29232, + "id": 33446, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13302:15:20", + "src": "13169:15:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", @@ -22634,38 +22828,69 @@ "value": "1_000_000" }, "nodeType": "VariableDeclarationStatement", - "src": "13287:30:20" + "src": "13154:30:31" }, { "expression": { "arguments": [ { - "hexValue": "307863303065393443623636324333353230323832453666353731373231343030344137663236383838", - "id": 29235, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 33449, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32093, + "src": "13261:7:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28096", + "typeString": "contract Vesting" + } + }, + "id": 33450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13269:10:31", + "memberName": "proveToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 27505, + "src": "13261:18:31", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 33451, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "13394:42:20", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13261:20:31", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "value": "0xc00e94Cb662C3520282E6f5717214004A7f26888" + } }, { "arguments": [ { - "id": 29238, + "id": 33454, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "13446:7:20", + "referencedDeclaration": 32093, + "src": "13291:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -22673,30 +22898,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29237, + "id": 33453, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13438:7:20", + "src": "13283:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29236, + "id": 33452, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13438:7:20", + "src": "13283:7:31", "typeDescriptions": {} } }, - "id": 29239, + "id": 33455, "isConstant": false, "isLValue": false, "isPure": false, @@ -22705,7 +22930,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13438:16:20", + "src": "13283:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -22713,12 +22938,12 @@ } }, { - "id": 29240, + "id": 33456, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29231, - "src": "13456:7:20", + "referencedDeclaration": 33445, + "src": "13301:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22740,22 +22965,22 @@ "typeString": "uint256" } ], - "id": 29234, + "id": 33448, "name": "deal", "nodeType": "Identifier", "overloadedDeclarations": [ - 5023, - 5040, - 5143 + 5060, + 5077, + 5180 ], - "referencedDeclaration": 5040, - "src": "13389:4:20", + "referencedDeclaration": 5077, + "src": "13256:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 29241, + "id": 33457, "isConstant": false, "isLValue": false, "isPure": false, @@ -22764,16 +22989,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13389:75:20", + "src": "13256:53:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29242, + "id": 33458, "nodeType": "ExpressionStatement", - "src": "13389:75:20" + "src": "13256:53:31" }, { "expression": { @@ -22781,14 +23006,14 @@ { "arguments": [ { - "id": 29248, + "id": 33464, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "13533:3:20", + "referencedDeclaration": 31571, + "src": "13378:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -22796,30 +23021,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29247, + "id": 33463, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13525:7:20", + "src": "13370:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29246, + "id": 33462, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13525:7:20", + "src": "13370:7:31", "typeDescriptions": {} } }, - "id": 29249, + "id": 33465, "isConstant": false, "isLValue": false, "isPure": false, @@ -22828,7 +23053,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13525:12:20", + "src": "13370:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -22844,33 +23069,33 @@ } ], "expression": { - "id": 29243, + "id": 33459, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "13511:2:20", + "src": "13356:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 29245, + "id": 33461, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "13514:10:20", + "memberLocation": "13359:10:31", "memberName": "startPrank", "nodeType": "MemberAccess", - "referencedDeclaration": 9043, - "src": "13511:13:20", + "referencedDeclaration": 9080, + "src": "13356:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 29250, + "id": 33466, "isConstant": false, "isLValue": false, "isPure": false, @@ -22879,16 +23104,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13511:27:20", + "src": "13356:27:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29251, + "id": 33467, "nodeType": "ExpressionStatement", - "src": "13511:27:20" + "src": "13356:27:31" }, { "expression": { @@ -22898,14 +23123,14 @@ { "arguments": [ { - "id": 29257, + "id": 33473, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "13617:7:20", + "referencedDeclaration": 32093, + "src": "13462:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -22913,30 +23138,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29256, + "id": 33472, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13609:7:20", + "src": "13454:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29255, + "id": 33471, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13609:7:20", + "src": "13454:7:31", "typeDescriptions": {} } }, - "id": 29258, + "id": 33474, "isConstant": false, "isLValue": false, "isPure": false, @@ -22945,7 +23170,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13609:16:20", + "src": "13454:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -22955,14 +23180,14 @@ { "arguments": [ { - "id": 29261, + "id": 33477, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "13635:3:20", + "referencedDeclaration": 31571, + "src": "13480:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -22970,30 +23195,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29260, + "id": 33476, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13627:7:20", + "src": "13472:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29259, + "id": 33475, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13627:7:20", + "src": "13472:7:31", "typeDescriptions": {} } }, - "id": 29262, + "id": 33478, "isConstant": false, "isLValue": false, "isPure": false, @@ -23002,7 +23227,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13627:12:20", + "src": "13472:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -23010,12 +23235,12 @@ } }, { - "id": 29263, + "id": 33479, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29231, - "src": "13641:7:20", + "referencedDeclaration": 33445, + "src": "13486:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23038,33 +23263,33 @@ } ], "expression": { - "id": 29253, + "id": 33469, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "13589:3:20", + "referencedDeclaration": 31568, + "src": "13434:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29254, + "id": 33470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "13593:15:20", + "memberLocation": "13438:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "13589:19:20", + "referencedDeclaration": 30294, + "src": "13434:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 29264, + "id": 33480, "isConstant": false, "isLValue": false, "isPure": false, @@ -23073,7 +23298,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13589:60:20", + "src": "13434:60:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -23088,18 +23313,18 @@ "typeString": "bool" } ], - "id": 29252, + "id": 33468, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "13582:6:20", + "src": "13427:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29265, + "id": 33481, "isConstant": false, "isLValue": false, "isPure": false, @@ -23108,16 +23333,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13582:68:20", + "src": "13427:68:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29266, + "id": 33482, "nodeType": "ExpressionStatement", - "src": "13582:68:20" + "src": "13427:68:31" }, { "expression": { @@ -23127,14 +23352,14 @@ { "arguments": [ { - "id": 29272, + "id": 33488, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "13726:7:20", + "referencedDeclaration": 32093, + "src": "13571:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -23142,30 +23367,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29271, + "id": 33487, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13718:7:20", + "src": "13563:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29270, + "id": 33486, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13718:7:20", + "src": "13563:7:31", "typeDescriptions": {} } }, - "id": 29273, + "id": 33489, "isConstant": false, "isLValue": false, "isPure": false, @@ -23174,7 +23399,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13718:16:20", + "src": "13563:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -23190,33 +23415,33 @@ } ], "expression": { - "id": 29268, + "id": 33484, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "13696:3:20", + "referencedDeclaration": 31568, + "src": "13541:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29269, + "id": 33485, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "13700:17:20", + "memberLocation": "13545:17:31", "memberName": "try_enableVesting", "nodeType": "MemberAccess", - "referencedDeclaration": 27182, - "src": "13696:21:20", + "referencedDeclaration": 30232, + "src": "13541:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29274, + "id": 33490, "isConstant": false, "isLValue": false, "isPure": false, @@ -23225,7 +23450,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13696:39:20", + "src": "13541:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -23240,18 +23465,18 @@ "typeString": "bool" } ], - "id": 29267, + "id": 33483, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "13689:6:20", + "src": "13534:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29275, + "id": 33491, "isConstant": false, "isLValue": false, "isPure": false, @@ -23260,16 +23485,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13689:47:20", + "src": "13534:47:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29276, + "id": 33492, "nodeType": "ExpressionStatement", - "src": "13689:47:20" + "src": "13534:47:31" }, { "expression": { @@ -23279,14 +23504,14 @@ { "arguments": [ { - "id": 29286, + "id": 33502, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "13833:3:20", + "referencedDeclaration": 31571, + "src": "13678:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -23294,30 +23519,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29285, + "id": 33501, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13825:7:20", + "src": "13670:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29284, + "id": 33500, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13825:7:20", + "src": "13670:7:31", "typeDescriptions": {} } }, - "id": 29287, + "id": 33503, "isConstant": false, "isLValue": false, "isPure": false, @@ -23326,7 +23551,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13825:12:20", + "src": "13670:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -23348,33 +23573,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29279, + "id": 33495, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "13793:7:20", + "referencedDeclaration": 32093, + "src": "13638:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29280, + "id": 33496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "13801:10:20", + "memberLocation": "13646:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "13793:18:20", + "referencedDeclaration": 27505, + "src": "13638:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29281, + "id": 33497, "isConstant": false, "isLValue": false, "isPure": false, @@ -23383,7 +23608,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13793:20:20", + "src": "13638:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -23398,18 +23623,18 @@ "typeString": "address" } ], - "id": 29278, + "id": 33494, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "13786:6:20", + "referencedDeclaration": 29158, + "src": "13631:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29282, + "id": 33498, "isConstant": false, "isLValue": false, "isPure": false, @@ -23418,29 +23643,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13786:28:20", + "src": "13631:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29283, + "id": 33499, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "13815:9:20", + "memberLocation": "13660:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "13786:38:20", + "referencedDeclaration": 29097, + "src": "13631:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29288, + "id": 33504, "isConstant": false, "isLValue": false, "isPure": false, @@ -23449,7 +23674,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13786:52:20", + "src": "13631:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -23458,14 +23683,14 @@ }, { "hexValue": "30", - "id": 29289, + "id": 33505, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13840:1:20", + "src": "13685:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -23484,20 +23709,20 @@ "typeString": "int_const 0" } ], - "id": 29277, + "id": 33493, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -23510,13 +23735,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "13777:8:20", + "src": "13622:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29290, + "id": 33506, "isConstant": false, "isLValue": false, "isPure": false, @@ -23525,16 +23750,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13777:65:20", + "src": "13622:65:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29291, + "id": 33507, "nodeType": "ExpressionStatement", - "src": "13777:65:20" + "src": "13622:65:31" }, { "expression": { @@ -23544,14 +23769,14 @@ { "arguments": [ { - "id": 29297, + "id": 33513, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "13923:7:20", + "referencedDeclaration": 32093, + "src": "13768:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -23559,30 +23784,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29296, + "id": 33512, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13915:7:20", + "src": "13760:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29295, + "id": 33511, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13915:7:20", + "src": "13760:7:31", "typeDescriptions": {} } }, - "id": 29298, + "id": 33514, "isConstant": false, "isLValue": false, "isPure": false, @@ -23591,7 +23816,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13915:16:20", + "src": "13760:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -23607,33 +23832,33 @@ } ], "expression": { - "id": 29293, + "id": 33509, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "13901:3:20", + "referencedDeclaration": 31571, + "src": "13746:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29294, + "id": 33510, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "13905:9:20", + "memberLocation": "13750:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "13901:13:20", + "referencedDeclaration": 30378, + "src": "13746:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29299, + "id": 33515, "isConstant": false, "isLValue": false, "isPure": false, @@ -23642,7 +23867,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13901:31:20", + "src": "13746:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -23657,18 +23882,18 @@ "typeString": "bool" } ], - "id": 29292, + "id": 33508, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "13894:6:20", + "src": "13739:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29300, + "id": 33516, "isConstant": false, "isLValue": false, "isPure": false, @@ -23677,16 +23902,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13894:39:20", + "src": "13739:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29301, + "id": 33517, "nodeType": "ExpressionStatement", - "src": "13894:39:20" + "src": "13739:39:31" }, { "expression": { @@ -23696,14 +23921,14 @@ { "arguments": [ { - "id": 29311, + "id": 33527, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "14031:3:20", + "referencedDeclaration": 31571, + "src": "13876:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -23711,30 +23936,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29310, + "id": 33526, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "14023:7:20", + "src": "13868:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29309, + "id": 33525, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14023:7:20", + "src": "13868:7:31", "typeDescriptions": {} } }, - "id": 29312, + "id": 33528, "isConstant": false, "isLValue": false, "isPure": false, @@ -23743,7 +23968,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14023:12:20", + "src": "13868:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -23765,33 +23990,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29304, + "id": 33520, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "13991:7:20", + "referencedDeclaration": 32093, + "src": "13836:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29305, + "id": 33521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "13999:10:20", + "memberLocation": "13844:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "13991:18:20", + "referencedDeclaration": 27505, + "src": "13836:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29306, + "id": 33522, "isConstant": false, "isLValue": false, "isPure": false, @@ -23800,7 +24025,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13991:20:20", + "src": "13836:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -23815,18 +24040,18 @@ "typeString": "address" } ], - "id": 29303, + "id": 33519, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "13984:6:20", + "referencedDeclaration": 29158, + "src": "13829:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29307, + "id": 33523, "isConstant": false, "isLValue": false, "isPure": false, @@ -23835,29 +24060,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13984:28:20", + "src": "13829:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29308, + "id": 33524, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "14013:9:20", + "memberLocation": "13858:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "13984:38:20", + "referencedDeclaration": 29097, + "src": "13829:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29313, + "id": 33529, "isConstant": false, "isLValue": false, "isPure": false, @@ -23866,7 +24091,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13984:52:20", + "src": "13829:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -23878,7 +24103,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29318, + "id": 33534, "isConstant": false, "isLValue": false, "isPure": false, @@ -23888,18 +24113,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29316, + "id": 33532, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29314, + "id": 33530, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29231, - "src": "14038:7:20", + "referencedDeclaration": 33445, + "src": "13883:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23909,21 +24134,21 @@ "operator": "*", "rightExpression": { "hexValue": "3132", - "id": 29315, + "id": 33531, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14048:2:20", + "src": "13893:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", "typeString": "int_const 12" }, "value": "12" }, - "src": "14038:12:20", + "src": "13883:12:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23933,21 +24158,21 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29317, + "id": 33533, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14053:3:20", + "src": "13898:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "14038:18:20", + "src": "13883:18:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23965,20 +24190,20 @@ "typeString": "uint256" } ], - "id": 29302, + "id": 33518, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -23991,13 +24216,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "13975:8:20", + "src": "13820:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29319, + "id": 33535, "isConstant": false, "isLValue": false, "isPure": false, @@ -24006,30 +24231,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13975:82:20", + "src": "13820:82:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29320, + "id": 33536, "nodeType": "ExpressionStatement", - "src": "13975:82:20" + "src": "13820:82:31" }, { "expression": { "arguments": [ { "hexValue": "34", - "id": 29322, + "id": 33538, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14100:7:20", + "src": "13945:7:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_2419200_by_1", @@ -24045,18 +24270,18 @@ "typeString": "int_const 2419200" } ], - "id": 29321, + "id": 33537, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "14095:4:20", + "referencedDeclaration": 4833, + "src": "13940:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29323, + "id": 33539, "isConstant": false, "isLValue": false, "isPure": false, @@ -24065,16 +24290,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14095:13:20", + "src": "13940:13:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29324, + "id": 33540, "nodeType": "ExpressionStatement", - "src": "14095:13:20" + "src": "13940:13:31" }, { "expression": { @@ -24084,14 +24309,14 @@ { "arguments": [ { - "id": 29330, + "id": 33546, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "14189:7:20", + "referencedDeclaration": 32093, + "src": "14034:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -24099,30 +24324,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29329, + "id": 33545, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "14181:7:20", + "src": "14026:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29328, + "id": 33544, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14181:7:20", + "src": "14026:7:31", "typeDescriptions": {} } }, - "id": 29331, + "id": 33547, "isConstant": false, "isLValue": false, "isPure": false, @@ -24131,7 +24356,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14181:16:20", + "src": "14026:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -24147,33 +24372,33 @@ } ], "expression": { - "id": 29326, + "id": 33542, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "14167:3:20", + "referencedDeclaration": 31571, + "src": "14012:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29327, + "id": 33543, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "14171:9:20", + "memberLocation": "14016:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "14167:13:20", + "referencedDeclaration": 30378, + "src": "14012:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29332, + "id": 33548, "isConstant": false, "isLValue": false, "isPure": false, @@ -24182,7 +24407,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14167:31:20", + "src": "14012:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -24197,18 +24422,18 @@ "typeString": "bool" } ], - "id": 29325, + "id": 33541, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "14160:6:20", + "src": "14005:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29333, + "id": 33549, "isConstant": false, "isLValue": false, "isPure": false, @@ -24217,16 +24442,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14160:39:20", + "src": "14005:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29334, + "id": 33550, "nodeType": "ExpressionStatement", - "src": "14160:39:20" + "src": "14005:39:31" }, { "expression": { @@ -24236,14 +24461,14 @@ { "arguments": [ { - "id": 29344, + "id": 33560, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "14297:3:20", + "referencedDeclaration": 31571, + "src": "14142:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -24251,30 +24476,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29343, + "id": 33559, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "14289:7:20", + "src": "14134:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29342, + "id": 33558, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14289:7:20", + "src": "14134:7:31", "typeDescriptions": {} } }, - "id": 29345, + "id": 33561, "isConstant": false, "isLValue": false, "isPure": false, @@ -24283,7 +24508,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14289:12:20", + "src": "14134:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -24305,33 +24530,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29337, + "id": 33553, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "14257:7:20", + "referencedDeclaration": 32093, + "src": "14102:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29338, + "id": 33554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "14265:10:20", + "memberLocation": "14110:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "14257:18:20", + "referencedDeclaration": 27505, + "src": "14102:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29339, + "id": 33555, "isConstant": false, "isLValue": false, "isPure": false, @@ -24340,7 +24565,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14257:20:20", + "src": "14102:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -24355,18 +24580,18 @@ "typeString": "address" } ], - "id": 29336, + "id": 33552, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "14250:6:20", + "referencedDeclaration": 29158, + "src": "14095:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29340, + "id": 33556, "isConstant": false, "isLValue": false, "isPure": false, @@ -24375,29 +24600,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14250:28:20", + "src": "14095:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29341, + "id": 33557, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "14279:9:20", + "memberLocation": "14124:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "14250:38:20", + "referencedDeclaration": 29097, + "src": "14095:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29346, + "id": 33562, "isConstant": false, "isLValue": false, "isPure": false, @@ -24406,7 +24631,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14250:52:20", + "src": "14095:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -24418,7 +24643,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29351, + "id": 33567, "isConstant": false, "isLValue": false, "isPure": false, @@ -24428,18 +24653,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29349, + "id": 33565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29347, + "id": 33563, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29231, - "src": "14304:7:20", + "referencedDeclaration": 33445, + "src": "14149:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24449,21 +24674,21 @@ "operator": "*", "rightExpression": { "hexValue": "3230", - "id": 29348, + "id": 33564, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14314:2:20", + "src": "14159:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_20_by_1", "typeString": "int_const 20" }, "value": "20" }, - "src": "14304:12:20", + "src": "14149:12:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24473,21 +24698,21 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29350, + "id": 33566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14319:3:20", + "src": "14164:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "14304:18:20", + "src": "14149:18:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24505,20 +24730,20 @@ "typeString": "uint256" } ], - "id": 29335, + "id": 33551, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -24531,13 +24756,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "14241:8:20", + "src": "14086:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29352, + "id": 33568, "isConstant": false, "isLValue": false, "isPure": false, @@ -24546,30 +24771,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14241:82:20", + "src": "14086:82:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29353, + "id": 33569, "nodeType": "ExpressionStatement", - "src": "14241:82:20" + "src": "14086:82:31" }, { "expression": { "arguments": [ { "hexValue": "34", - "id": 29355, + "id": 33571, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14366:7:20", + "src": "14211:7:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_2419200_by_1", @@ -24585,18 +24810,18 @@ "typeString": "int_const 2419200" } ], - "id": 29354, + "id": 33570, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "14361:4:20", + "referencedDeclaration": 4833, + "src": "14206:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29356, + "id": 33572, "isConstant": false, "isLValue": false, "isPure": false, @@ -24605,16 +24830,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14361:13:20", + "src": "14206:13:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29357, + "id": 33573, "nodeType": "ExpressionStatement", - "src": "14361:13:20" + "src": "14206:13:31" }, { "expression": { @@ -24624,14 +24849,14 @@ { "arguments": [ { - "id": 29363, + "id": 33579, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "14455:7:20", + "referencedDeclaration": 32093, + "src": "14300:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -24639,30 +24864,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29362, + "id": 33578, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "14447:7:20", + "src": "14292:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29361, + "id": 33577, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14447:7:20", + "src": "14292:7:31", "typeDescriptions": {} } }, - "id": 29364, + "id": 33580, "isConstant": false, "isLValue": false, "isPure": false, @@ -24671,7 +24896,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14447:16:20", + "src": "14292:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -24687,33 +24912,33 @@ } ], "expression": { - "id": 29359, + "id": 33575, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "14433:3:20", + "referencedDeclaration": 31571, + "src": "14278:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29360, + "id": 33576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "14437:9:20", + "memberLocation": "14282:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "14433:13:20", + "referencedDeclaration": 30378, + "src": "14278:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29365, + "id": 33581, "isConstant": false, "isLValue": false, "isPure": false, @@ -24722,7 +24947,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14433:31:20", + "src": "14278:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -24737,18 +24962,18 @@ "typeString": "bool" } ], - "id": 29358, + "id": 33574, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "14426:6:20", + "src": "14271:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29366, + "id": 33582, "isConstant": false, "isLValue": false, "isPure": false, @@ -24757,16 +24982,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14426:39:20", + "src": "14271:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29367, + "id": 33583, "nodeType": "ExpressionStatement", - "src": "14426:39:20" + "src": "14271:39:31" }, { "expression": { @@ -24776,14 +25001,14 @@ { "arguments": [ { - "id": 29377, + "id": 33593, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "14563:3:20", + "referencedDeclaration": 31571, + "src": "14408:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -24791,30 +25016,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29376, + "id": 33592, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "14555:7:20", + "src": "14400:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29375, + "id": 33591, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14555:7:20", + "src": "14400:7:31", "typeDescriptions": {} } }, - "id": 29378, + "id": 33594, "isConstant": false, "isLValue": false, "isPure": false, @@ -24823,7 +25048,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14555:12:20", + "src": "14400:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -24845,33 +25070,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29370, + "id": 33586, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "14523:7:20", + "referencedDeclaration": 32093, + "src": "14368:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29371, + "id": 33587, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "14531:10:20", + "memberLocation": "14376:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "14523:18:20", + "referencedDeclaration": 27505, + "src": "14368:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29372, + "id": 33588, "isConstant": false, "isLValue": false, "isPure": false, @@ -24880,7 +25105,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14523:20:20", + "src": "14368:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -24895,18 +25120,18 @@ "typeString": "address" } ], - "id": 29369, + "id": 33585, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "14516:6:20", + "referencedDeclaration": 29158, + "src": "14361:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29373, + "id": 33589, "isConstant": false, "isLValue": false, "isPure": false, @@ -24915,29 +25140,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14516:28:20", + "src": "14361:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29374, + "id": 33590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "14545:9:20", + "memberLocation": "14390:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "14516:38:20", + "referencedDeclaration": 29097, + "src": "14361:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29379, + "id": 33595, "isConstant": false, "isLValue": false, "isPure": false, @@ -24946,7 +25171,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14516:52:20", + "src": "14361:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -24958,7 +25183,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29384, + "id": 33600, "isConstant": false, "isLValue": false, "isPure": false, @@ -24968,18 +25193,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29382, + "id": 33598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29380, + "id": 33596, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29231, - "src": "14570:7:20", + "referencedDeclaration": 33445, + "src": "14415:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24989,21 +25214,21 @@ "operator": "*", "rightExpression": { "hexValue": "3238", - "id": 29381, + "id": 33597, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14580:2:20", + "src": "14425:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_28_by_1", "typeString": "int_const 28" }, "value": "28" }, - "src": "14570:12:20", + "src": "14415:12:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25013,21 +25238,21 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29383, + "id": 33599, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14585:3:20", + "src": "14430:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "14570:18:20", + "src": "14415:18:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25045,20 +25270,20 @@ "typeString": "uint256" } ], - "id": 29368, + "id": 33584, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -25071,13 +25296,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "14507:8:20", + "src": "14352:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29385, + "id": 33601, "isConstant": false, "isLValue": false, "isPure": false, @@ -25086,30 +25311,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14507:82:20", + "src": "14352:82:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29386, + "id": 33602, "nodeType": "ExpressionStatement", - "src": "14507:82:20" + "src": "14352:82:31" }, { "expression": { "arguments": [ { "hexValue": "3132", - "id": 29388, + "id": 33604, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14633:8:20", + "src": "14478:8:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_7257600_by_1", @@ -25125,18 +25350,18 @@ "typeString": "int_const 7257600" } ], - "id": 29387, + "id": 33603, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "14628:4:20", + "referencedDeclaration": 4833, + "src": "14473:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29389, + "id": 33605, "isConstant": false, "isLValue": false, "isPure": false, @@ -25145,16 +25370,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14628:14:20", + "src": "14473:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29390, + "id": 33606, "nodeType": "ExpressionStatement", - "src": "14628:14:20" + "src": "14473:14:31" }, { "expression": { @@ -25164,14 +25389,14 @@ { "arguments": [ { - "id": 29396, + "id": 33612, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "14723:7:20", + "referencedDeclaration": 32093, + "src": "14568:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -25179,30 +25404,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29395, + "id": 33611, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "14715:7:20", + "src": "14560:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29394, + "id": 33610, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14715:7:20", + "src": "14560:7:31", "typeDescriptions": {} } }, - "id": 29397, + "id": 33613, "isConstant": false, "isLValue": false, "isPure": false, @@ -25211,7 +25436,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14715:16:20", + "src": "14560:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -25227,33 +25452,33 @@ } ], "expression": { - "id": 29392, + "id": 33608, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "14701:3:20", + "referencedDeclaration": 31571, + "src": "14546:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29393, + "id": 33609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "14705:9:20", + "memberLocation": "14550:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "14701:13:20", + "referencedDeclaration": 30378, + "src": "14546:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29398, + "id": 33614, "isConstant": false, "isLValue": false, "isPure": false, @@ -25262,7 +25487,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14701:31:20", + "src": "14546:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -25277,18 +25502,18 @@ "typeString": "bool" } ], - "id": 29391, + "id": 33607, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "14694:6:20", + "src": "14539:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29399, + "id": 33615, "isConstant": false, "isLValue": false, "isPure": false, @@ -25297,16 +25522,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14694:39:20", + "src": "14539:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29400, + "id": 33616, "nodeType": "ExpressionStatement", - "src": "14694:39:20" + "src": "14539:39:31" }, { "expression": { @@ -25316,14 +25541,14 @@ { "arguments": [ { - "id": 29410, + "id": 33626, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "14831:3:20", + "referencedDeclaration": 31571, + "src": "14676:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -25331,30 +25556,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29409, + "id": 33625, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "14823:7:20", + "src": "14668:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29408, + "id": 33624, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14823:7:20", + "src": "14668:7:31", "typeDescriptions": {} } }, - "id": 29411, + "id": 33627, "isConstant": false, "isLValue": false, "isPure": false, @@ -25363,7 +25588,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14823:12:20", + "src": "14668:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -25385,33 +25610,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29403, + "id": 33619, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "14791:7:20", + "referencedDeclaration": 32093, + "src": "14636:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29404, + "id": 33620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "14799:10:20", + "memberLocation": "14644:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "14791:18:20", + "referencedDeclaration": 27505, + "src": "14636:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29405, + "id": 33621, "isConstant": false, "isLValue": false, "isPure": false, @@ -25420,7 +25645,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14791:20:20", + "src": "14636:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -25435,18 +25660,18 @@ "typeString": "address" } ], - "id": 29402, + "id": 33618, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "14784:6:20", + "referencedDeclaration": 29158, + "src": "14629:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29406, + "id": 33622, "isConstant": false, "isLValue": false, "isPure": false, @@ -25455,29 +25680,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14784:28:20", + "src": "14629:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29407, + "id": 33623, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "14813:9:20", + "memberLocation": "14658:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "14784:38:20", + "referencedDeclaration": 29097, + "src": "14629:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29412, + "id": 33628, "isConstant": false, "isLValue": false, "isPure": false, @@ -25486,7 +25711,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14784:52:20", + "src": "14629:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -25498,7 +25723,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29417, + "id": 33633, "isConstant": false, "isLValue": false, "isPure": false, @@ -25508,18 +25733,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29415, + "id": 33631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29413, + "id": 33629, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29231, - "src": "14838:7:20", + "referencedDeclaration": 33445, + "src": "14683:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25529,21 +25754,21 @@ "operator": "*", "rightExpression": { "hexValue": "3532", - "id": 29414, + "id": 33630, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14848:2:20", + "src": "14693:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_52_by_1", "typeString": "int_const 52" }, "value": "52" }, - "src": "14838:12:20", + "src": "14683:12:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25553,21 +25778,21 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29416, + "id": 33632, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14853:3:20", + "src": "14698:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "14838:18:20", + "src": "14683:18:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25585,20 +25810,20 @@ "typeString": "uint256" } ], - "id": 29401, + "id": 33617, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -25611,13 +25836,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "14775:8:20", + "src": "14620:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29418, + "id": 33634, "isConstant": false, "isLValue": false, "isPure": false, @@ -25626,30 +25851,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14775:82:20", + "src": "14620:82:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29419, + "id": 33635, "nodeType": "ExpressionStatement", - "src": "14775:82:20" + "src": "14620:82:31" }, { "expression": { "arguments": [ { "hexValue": "3234", - "id": 29421, + "id": 33637, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14901:8:20", + "src": "14746:8:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_14515200_by_1", @@ -25665,18 +25890,18 @@ "typeString": "int_const 14515200" } ], - "id": 29420, + "id": 33636, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "14896:4:20", + "referencedDeclaration": 4833, + "src": "14741:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29422, + "id": 33638, "isConstant": false, "isLValue": false, "isPure": false, @@ -25685,16 +25910,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14896:14:20", + "src": "14741:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29423, + "id": 33639, "nodeType": "ExpressionStatement", - "src": "14896:14:20" + "src": "14741:14:31" }, { "expression": { @@ -25704,14 +25929,14 @@ { "arguments": [ { - "id": 29429, + "id": 33645, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "14991:7:20", + "referencedDeclaration": 32093, + "src": "14836:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -25719,30 +25944,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29428, + "id": 33644, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "14983:7:20", + "src": "14828:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29427, + "id": 33643, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14983:7:20", + "src": "14828:7:31", "typeDescriptions": {} } }, - "id": 29430, + "id": 33646, "isConstant": false, "isLValue": false, "isPure": false, @@ -25751,7 +25976,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14983:16:20", + "src": "14828:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -25767,33 +25992,33 @@ } ], "expression": { - "id": 29425, + "id": 33641, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "14969:3:20", + "referencedDeclaration": 31571, + "src": "14814:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29426, + "id": 33642, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "14973:9:20", + "memberLocation": "14818:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "14969:13:20", + "referencedDeclaration": 30378, + "src": "14814:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29431, + "id": 33647, "isConstant": false, "isLValue": false, "isPure": false, @@ -25802,7 +26027,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14969:31:20", + "src": "14814:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -25817,18 +26042,18 @@ "typeString": "bool" } ], - "id": 29424, + "id": 33640, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "14962:6:20", + "src": "14807:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29432, + "id": 33648, "isConstant": false, "isLValue": false, "isPure": false, @@ -25837,16 +26062,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14962:39:20", + "src": "14807:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29433, + "id": 33649, "nodeType": "ExpressionStatement", - "src": "14962:39:20" + "src": "14807:39:31" }, { "expression": { @@ -25856,14 +26081,14 @@ { "arguments": [ { - "id": 29443, + "id": 33659, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "15099:3:20", + "referencedDeclaration": 31571, + "src": "14944:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -25871,30 +26096,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29442, + "id": 33658, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15091:7:20", + "src": "14936:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29441, + "id": 33657, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15091:7:20", + "src": "14936:7:31", "typeDescriptions": {} } }, - "id": 29444, + "id": 33660, "isConstant": false, "isLValue": false, "isPure": false, @@ -25903,7 +26128,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15091:12:20", + "src": "14936:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -25925,33 +26150,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29436, + "id": 33652, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "15059:7:20", + "referencedDeclaration": 32093, + "src": "14904:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29437, + "id": 33653, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "15067:10:20", + "memberLocation": "14912:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "15059:18:20", + "referencedDeclaration": 27505, + "src": "14904:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29438, + "id": 33654, "isConstant": false, "isLValue": false, "isPure": false, @@ -25960,7 +26185,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15059:20:20", + "src": "14904:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -25975,18 +26200,18 @@ "typeString": "address" } ], - "id": 29435, + "id": 33651, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "15052:6:20", + "referencedDeclaration": 29158, + "src": "14897:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29439, + "id": 33655, "isConstant": false, "isLValue": false, "isPure": false, @@ -25995,29 +26220,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15052:28:20", + "src": "14897:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29440, + "id": 33656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "15081:9:20", + "memberLocation": "14926:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "15052:38:20", + "referencedDeclaration": 29097, + "src": "14897:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29445, + "id": 33661, "isConstant": false, "isLValue": false, "isPure": false, @@ -26026,7 +26251,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15052:52:20", + "src": "14897:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -26034,12 +26259,12 @@ } }, { - "id": 29446, + "id": 33662, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29231, - "src": "15106:7:20", + "referencedDeclaration": 33445, + "src": "14951:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26057,20 +26282,20 @@ "typeString": "uint256" } ], - "id": 29434, + "id": 33650, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -26083,13 +26308,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "15043:8:20", + "src": "14888:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29447, + "id": 33663, "isConstant": false, "isLValue": false, "isPure": false, @@ -26098,16 +26323,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15043:71:20", + "src": "14888:71:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29448, + "id": 33664, "nodeType": "ExpressionStatement", - "src": "15043:71:20" + "src": "14888:71:31" }, { "expression": { @@ -26115,33 +26340,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29449, + "id": 33665, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "15127:2:20", + "src": "14972:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 29451, + "id": 33667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "15130:9:20", + "memberLocation": "14975:9:31", "memberName": "stopPrank", "nodeType": "MemberAccess", - "referencedDeclaration": 9060, - "src": "15127:12:20", + "referencedDeclaration": 9097, + "src": "14972:12:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, - "id": 29452, + "id": 33668, "isConstant": false, "isLValue": false, "isPure": false, @@ -26150,23 +26375,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15127:14:20", + "src": "14972:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29453, + "id": 33669, "nodeType": "ExpressionStatement", - "src": "15127:14:20" + "src": "14972:14:31" } ] }, "documentation": { - "id": 29227, + "id": 33441, "nodeType": "StructuredDocumentation", - "src": "13180:39:20", + "src": "13047:39:31", "text": "@dev Verifies claim() state changes" }, "functionSelector": "63cbd9c1", @@ -26174,65 +26399,96 @@ "kind": "function", "modifiers": [], "name": "test_vesting_claim_state_changes", - "nameLocation": "13234:32:20", + "nameLocation": "13101:32:31", "parameters": { - "id": 29228, + "id": 33442, "nodeType": "ParameterList", "parameters": [], - "src": "13266:2:20" + "src": "13133:2:31" }, "returnParameters": { - "id": 29229, + "id": 33443, "nodeType": "ParameterList", "parameters": [], - "src": "13276:0:20" + "src": "13143:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 29652, + "id": 33870, "nodeType": "FunctionDefinition", - "src": "15199:2074:20", + "src": "15044:2052:31", "nodes": [], "body": { - "id": 29651, + "id": 33869, "nodeType": "Block", - "src": "15247:2026:20", + "src": "15092:2004:31", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "hexValue": "307863303065393443623636324333353230323832453666353731373231343030344137663236383838", - "id": 29460, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 33676, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32093, + "src": "15167:7:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28096", + "typeString": "contract Vesting" + } + }, + "id": 33677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15175:10:31", + "memberName": "proveToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 27505, + "src": "15167:18:31", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 33678, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "15322:42:20", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15167:20:31", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "value": "0xc00e94Cb662C3520282E6f5717214004A7f26888" + } }, { "arguments": [ { - "id": 29463, + "id": 33681, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "15374:7:20", + "referencedDeclaration": 32093, + "src": "15197:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -26240,30 +26496,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29462, + "id": 33680, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15366:7:20", + "src": "15189:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29461, + "id": 33679, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15366:7:20", + "src": "15189:7:31", "typeDescriptions": {} } }, - "id": 29464, + "id": 33682, "isConstant": false, "isLValue": false, "isPure": false, @@ -26272,7 +26528,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15366:16:20", + "src": "15189:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -26281,14 +26537,14 @@ }, { "hexValue": "355f3030305f303030", - "id": 29465, + "id": 33683, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15384:15:20", + "src": "15207:15:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_5000000000000000000000000_by_1", @@ -26312,22 +26568,22 @@ "typeString": "int_const 5000000000000000000000000" } ], - "id": 29459, + "id": 33675, "name": "deal", "nodeType": "Identifier", "overloadedDeclarations": [ - 5023, - 5040, - 5143 + 5060, + 5077, + 5180 ], - "referencedDeclaration": 5040, - "src": "15317:4:20", + "referencedDeclaration": 5077, + "src": "15162:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 29466, + "id": 33684, "isConstant": false, "isLValue": false, "isPure": false, @@ -26336,16 +26592,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15317:83:20", + "src": "15162:61:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29467, + "id": 33685, "nodeType": "ExpressionStatement", - "src": "15317:83:20" + "src": "15162:61:31" }, { "expression": { @@ -26355,14 +26611,14 @@ { "arguments": [ { - "id": 29473, + "id": 33691, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "15476:7:20", + "referencedDeclaration": 32093, + "src": "15299:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -26370,30 +26626,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29472, + "id": 33690, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15468:7:20", + "src": "15291:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29471, + "id": 33689, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15468:7:20", + "src": "15291:7:31", "typeDescriptions": {} } }, - "id": 29474, + "id": 33692, "isConstant": false, "isLValue": false, "isPure": false, @@ -26402,7 +26658,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15468:16:20", + "src": "15291:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -26418,33 +26674,33 @@ } ], "expression": { - "id": 29469, + "id": 33687, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "15446:3:20", + "referencedDeclaration": 31568, + "src": "15269:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29470, + "id": 33688, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "15450:17:20", + "memberLocation": "15273:17:31", "memberName": "try_enableVesting", "nodeType": "MemberAccess", - "referencedDeclaration": 27182, - "src": "15446:21:20", + "referencedDeclaration": 30232, + "src": "15269:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29475, + "id": 33693, "isConstant": false, "isLValue": false, "isPure": false, @@ -26453,7 +26709,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15446:39:20", + "src": "15269:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -26468,18 +26724,18 @@ "typeString": "bool" } ], - "id": 29468, + "id": 33686, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "15439:6:20", + "src": "15262:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29476, + "id": 33694, "isConstant": false, "isLValue": false, "isPure": false, @@ -26488,16 +26744,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15439:47:20", + "src": "15262:47:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29477, + "id": 33695, "nodeType": "ExpressionStatement", - "src": "15439:47:20" + "src": "15262:47:31" }, { "expression": { @@ -26507,14 +26763,14 @@ { "arguments": [ { - "id": 29483, + "id": 33701, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "15623:7:20", + "referencedDeclaration": 32093, + "src": "15446:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -26522,30 +26778,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29482, + "id": 33700, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15615:7:20", + "src": "15438:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29481, + "id": 33699, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15615:7:20", + "src": "15438:7:31", "typeDescriptions": {} } }, - "id": 29484, + "id": 33702, "isConstant": false, "isLValue": false, "isPure": false, @@ -26554,7 +26810,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15615:16:20", + "src": "15438:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -26564,14 +26820,14 @@ { "arguments": [ { - "id": 29487, + "id": 33705, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "15641:3:20", + "referencedDeclaration": 31571, + "src": "15464:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -26579,30 +26835,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29486, + "id": 33704, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15633:7:20", + "src": "15456:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29485, + "id": 33703, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15633:7:20", + "src": "15456:7:31", "typeDescriptions": {} } }, - "id": 29488, + "id": 33706, "isConstant": false, "isLValue": false, "isPure": false, @@ -26611,7 +26867,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15633:12:20", + "src": "15456:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -26620,14 +26876,14 @@ }, { "hexValue": "315f3030305f303030", - "id": 29489, + "id": 33707, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15647:15:20", + "src": "15470:15:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", @@ -26652,33 +26908,33 @@ } ], "expression": { - "id": 29479, + "id": 33697, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "15595:3:20", + "referencedDeclaration": 31568, + "src": "15418:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29480, + "id": 33698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "15599:15:20", + "memberLocation": "15422:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "15595:19:20", + "referencedDeclaration": 30294, + "src": "15418:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 29490, + "id": 33708, "isConstant": false, "isLValue": false, "isPure": false, @@ -26687,7 +26943,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15595:68:20", + "src": "15418:68:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -26702,18 +26958,18 @@ "typeString": "bool" } ], - "id": 29478, + "id": 33696, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "15588:6:20", + "src": "15411:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29491, + "id": 33709, "isConstant": false, "isLValue": false, "isPure": false, @@ -26722,16 +26978,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15588:76:20", + "src": "15411:76:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29492, + "id": 33710, "nodeType": "ExpressionStatement", - "src": "15588:76:20" + "src": "15411:76:31" }, { "expression": { @@ -26741,14 +26997,14 @@ { "arguments": [ { - "id": 29498, + "id": 33716, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "15744:7:20", + "referencedDeclaration": 32093, + "src": "15567:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -26756,30 +27012,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29497, + "id": 33715, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15736:7:20", + "src": "15559:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29496, + "id": 33714, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15736:7:20", + "src": "15559:7:31", "typeDescriptions": {} } }, - "id": 29499, + "id": 33717, "isConstant": false, "isLValue": false, "isPure": false, @@ -26788,7 +27044,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15736:16:20", + "src": "15559:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -26798,14 +27054,14 @@ { "arguments": [ { - "id": 29502, + "id": 33720, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "15762:3:20", + "referencedDeclaration": 31565, + "src": "15585:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -26813,30 +27069,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29501, + "id": 33719, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15754:7:20", + "src": "15577:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29500, + "id": 33718, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15754:7:20", + "src": "15577:7:31", "typeDescriptions": {} } }, - "id": 29503, + "id": 33721, "isConstant": false, "isLValue": false, "isPure": false, @@ -26845,7 +27101,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15754:12:20", + "src": "15577:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -26854,14 +27110,14 @@ }, { "hexValue": "315f3030305f303030", - "id": 29504, + "id": 33722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15768:15:20", + "src": "15591:15:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", @@ -26886,33 +27142,33 @@ } ], "expression": { - "id": 29494, + "id": 33712, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "15716:3:20", + "referencedDeclaration": 31568, + "src": "15539:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29495, + "id": 33713, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "15720:15:20", + "memberLocation": "15543:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "15716:19:20", + "referencedDeclaration": 30294, + "src": "15539:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 29505, + "id": 33723, "isConstant": false, "isLValue": false, "isPure": false, @@ -26921,7 +27177,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15716:68:20", + "src": "15539:68:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -26936,18 +27192,18 @@ "typeString": "bool" } ], - "id": 29493, + "id": 33711, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "15709:6:20", + "src": "15532:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29506, + "id": 33724, "isConstant": false, "isLValue": false, "isPure": false, @@ -26956,16 +27212,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15709:76:20", + "src": "15532:76:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29507, + "id": 33725, "nodeType": "ExpressionStatement", - "src": "15709:76:20" + "src": "15532:76:31" }, { "expression": { @@ -26975,14 +27231,14 @@ { "arguments": [ { - "id": 29513, + "id": 33731, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "15865:7:20", + "referencedDeclaration": 32093, + "src": "15688:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -26990,30 +27246,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29512, + "id": 33730, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15857:7:20", + "src": "15680:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29511, + "id": 33729, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15857:7:20", + "src": "15680:7:31", "typeDescriptions": {} } }, - "id": 29514, + "id": 33732, "isConstant": false, "isLValue": false, "isPure": false, @@ -27022,7 +27278,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15857:16:20", + "src": "15680:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -27032,14 +27288,14 @@ { "arguments": [ { - "id": 29517, + "id": 33735, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "15883:3:20", + "referencedDeclaration": 31568, + "src": "15706:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -27047,30 +27303,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29516, + "id": 33734, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15875:7:20", + "src": "15698:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29515, + "id": 33733, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15875:7:20", + "src": "15698:7:31", "typeDescriptions": {} } }, - "id": 29518, + "id": 33736, "isConstant": false, "isLValue": false, "isPure": false, @@ -27079,7 +27335,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15875:12:20", + "src": "15698:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -27088,14 +27344,14 @@ }, { "hexValue": "315f3030305f303030", - "id": 29519, + "id": 33737, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15889:15:20", + "src": "15712:15:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", @@ -27120,33 +27376,33 @@ } ], "expression": { - "id": 29509, + "id": 33727, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "15837:3:20", + "referencedDeclaration": 31568, + "src": "15660:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29510, + "id": 33728, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "15841:15:20", + "memberLocation": "15664:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "15837:19:20", + "referencedDeclaration": 30294, + "src": "15660:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 29520, + "id": 33738, "isConstant": false, "isLValue": false, "isPure": false, @@ -27155,7 +27411,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15837:68:20", + "src": "15660:68:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -27170,18 +27426,18 @@ "typeString": "bool" } ], - "id": 29508, + "id": 33726, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "15830:6:20", + "src": "15653:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29521, + "id": 33739, "isConstant": false, "isLValue": false, "isPure": false, @@ -27190,30 +27446,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15830:76:20", + "src": "15653:76:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29522, + "id": 33740, "nodeType": "ExpressionStatement", - "src": "15830:76:20" + "src": "15653:76:31" }, { "expression": { "arguments": [ { "hexValue": "32", - "id": 29524, + "id": 33742, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15986:7:20", + "src": "15809:7:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_1209600_by_1", @@ -27229,18 +27485,18 @@ "typeString": "int_const 1209600" } ], - "id": 29523, + "id": 33741, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "15981:4:20", + "referencedDeclaration": 4833, + "src": "15804:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29525, + "id": 33743, "isConstant": false, "isLValue": false, "isPure": false, @@ -27249,16 +27505,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15981:13:20", + "src": "15804:13:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29526, + "id": 33744, "nodeType": "ExpressionStatement", - "src": "15981:13:20" + "src": "15804:13:31" }, { "expression": { @@ -27268,14 +27524,14 @@ { "arguments": [ { - "id": 29532, + "id": 33750, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "16034:7:20", + "referencedDeclaration": 32093, + "src": "15857:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -27283,30 +27539,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29531, + "id": 33749, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16026:7:20", + "src": "15849:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29530, + "id": 33748, "name": "address", "nodeType": "ElementaryTypeName", - "src": "16026:7:20", + "src": "15849:7:31", "typeDescriptions": {} } }, - "id": 29533, + "id": 33751, "isConstant": false, "isLValue": false, "isPure": false, @@ -27315,7 +27571,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16026:16:20", + "src": "15849:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -27331,33 +27587,33 @@ } ], "expression": { - "id": 29528, + "id": 33746, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "16012:3:20", + "referencedDeclaration": 31571, + "src": "15835:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29529, + "id": 33747, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "16016:9:20", + "memberLocation": "15839:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "16012:13:20", + "referencedDeclaration": 30378, + "src": "15835:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29534, + "id": 33752, "isConstant": false, "isLValue": false, "isPure": false, @@ -27366,7 +27622,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16012:31:20", + "src": "15835:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -27381,18 +27637,18 @@ "typeString": "bool" } ], - "id": 29527, + "id": 33745, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "16005:6:20", + "src": "15828:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29535, + "id": 33753, "isConstant": false, "isLValue": false, "isPure": false, @@ -27401,16 +27657,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16005:39:20", + "src": "15828:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29536, + "id": 33754, "nodeType": "ExpressionStatement", - "src": "16005:39:20" + "src": "15828:39:31" }, { "expression": { @@ -27420,14 +27676,14 @@ { "arguments": [ { - "id": 29546, + "id": 33764, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "16177:3:20", + "referencedDeclaration": 31571, + "src": "16000:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -27435,30 +27691,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29545, + "id": 33763, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16169:7:20", + "src": "15992:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29544, + "id": 33762, "name": "address", "nodeType": "ElementaryTypeName", - "src": "16169:7:20", + "src": "15992:7:31", "typeDescriptions": {} } }, - "id": 29547, + "id": 33765, "isConstant": false, "isLValue": false, "isPure": false, @@ -27467,7 +27723,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16169:12:20", + "src": "15992:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -27489,33 +27745,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29539, + "id": 33757, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "16137:7:20", + "referencedDeclaration": 32093, + "src": "15960:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29540, + "id": 33758, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "16145:10:20", + "memberLocation": "15968:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "16137:18:20", + "referencedDeclaration": 27505, + "src": "15960:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29541, + "id": 33759, "isConstant": false, "isLValue": false, "isPure": false, @@ -27524,7 +27780,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16137:20:20", + "src": "15960:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -27539,18 +27795,18 @@ "typeString": "address" } ], - "id": 29538, + "id": 33756, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "16130:6:20", + "referencedDeclaration": 29158, + "src": "15953:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29542, + "id": 33760, "isConstant": false, "isLValue": false, "isPure": false, @@ -27559,29 +27815,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16130:28:20", + "src": "15953:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29543, + "id": 33761, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "16159:9:20", + "memberLocation": "15982:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "16130:38:20", + "referencedDeclaration": 29097, + "src": "15953:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29548, + "id": 33766, "isConstant": false, "isLValue": false, "isPure": false, @@ -27590,7 +27846,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16130:52:20", + "src": "15953:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -27604,7 +27860,7 @@ "typeIdentifier": "t_rational_120000000000000000000000_by_1", "typeString": "int_const 120000000000000000000000" }, - "id": 29553, + "id": 33771, "isConstant": false, "isLValue": false, "isPure": true, @@ -27614,21 +27870,21 @@ "typeIdentifier": "t_rational_12000000000000000000000000_by_1", "typeString": "int_const 12000000000000000000000000" }, - "id": 29551, + "id": 33769, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "315f3030305f303030", - "id": 29549, + "id": 33767, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16185:15:20", + "src": "16008:15:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", @@ -27640,21 +27896,21 @@ "operator": "*", "rightExpression": { "hexValue": "3132", - "id": 29550, + "id": 33768, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16203:2:20", + "src": "16026:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", "typeString": "int_const 12" }, "value": "12" }, - "src": "16185:20:20", + "src": "16008:20:31", "typeDescriptions": { "typeIdentifier": "t_rational_12000000000000000000000000_by_1", "typeString": "int_const 12000000000000000000000000" @@ -27664,35 +27920,35 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29552, + "id": 33770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16208:3:20", + "src": "16031:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "16185:26:20", + "src": "16008:26:31", "typeDescriptions": { "typeIdentifier": "t_rational_120000000000000000000000_by_1", "typeString": "int_const 120000000000000000000000" } } ], - "id": 29554, + "id": 33772, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "16184:28:20", + "src": "16007:28:31", "typeDescriptions": { "typeIdentifier": "t_rational_120000000000000000000000_by_1", "typeString": "int_const 120000000000000000000000" @@ -27710,20 +27966,20 @@ "typeString": "int_const 120000000000000000000000" } ], - "id": 29537, + "id": 33755, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -27736,13 +27992,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "16121:8:20", + "src": "15944:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29555, + "id": 33773, "isConstant": false, "isLValue": false, "isPure": false, @@ -27751,30 +28007,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16121:93:20", + "src": "15944:93:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29556, + "id": 33774, "nodeType": "ExpressionStatement", - "src": "16121:93:20" + "src": "15944:93:31" }, { "expression": { "arguments": [ { "hexValue": "3232", - "id": 29558, + "id": 33776, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16284:8:20", + "src": "16107:8:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_13305600_by_1", @@ -27790,18 +28046,18 @@ "typeString": "int_const 13305600" } ], - "id": 29557, + "id": 33775, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "16279:4:20", + "referencedDeclaration": 4833, + "src": "16102:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29559, + "id": 33777, "isConstant": false, "isLValue": false, "isPure": false, @@ -27810,16 +28066,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16279:14:20", + "src": "16102:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29560, + "id": 33778, "nodeType": "ExpressionStatement", - "src": "16279:14:20" + "src": "16102:14:31" }, { "expression": { @@ -27829,14 +28085,14 @@ { "arguments": [ { - "id": 29566, + "id": 33784, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "16387:7:20", + "referencedDeclaration": 32093, + "src": "16210:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -27844,30 +28100,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29565, + "id": 33783, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16379:7:20", + "src": "16202:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29564, + "id": 33782, "name": "address", "nodeType": "ElementaryTypeName", - "src": "16379:7:20", + "src": "16202:7:31", "typeDescriptions": {} } }, - "id": 29567, + "id": 33785, "isConstant": false, "isLValue": false, "isPure": false, @@ -27876,7 +28132,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16379:16:20", + "src": "16202:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -27892,33 +28148,33 @@ } ], "expression": { - "id": 29562, + "id": 33780, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "16365:3:20", + "referencedDeclaration": 31565, + "src": "16188:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29563, + "id": 33781, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "16369:9:20", + "memberLocation": "16192:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "16365:13:20", + "referencedDeclaration": 30378, + "src": "16188:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29568, + "id": 33786, "isConstant": false, "isLValue": false, "isPure": false, @@ -27927,7 +28183,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16365:31:20", + "src": "16188:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -27942,18 +28198,18 @@ "typeString": "bool" } ], - "id": 29561, + "id": 33779, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "16358:6:20", + "src": "16181:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29569, + "id": 33787, "isConstant": false, "isLValue": false, "isPure": false, @@ -27962,16 +28218,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16358:39:20", + "src": "16181:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29570, + "id": 33788, "nodeType": "ExpressionStatement", - "src": "16358:39:20" + "src": "16181:39:31" }, { "expression": { @@ -27981,14 +28237,14 @@ { "arguments": [ { - "id": 29580, + "id": 33798, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "16530:3:20", + "referencedDeclaration": 31565, + "src": "16353:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -27996,30 +28252,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29579, + "id": 33797, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16522:7:20", + "src": "16345:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29578, + "id": 33796, "name": "address", "nodeType": "ElementaryTypeName", - "src": "16522:7:20", + "src": "16345:7:31", "typeDescriptions": {} } }, - "id": 29581, + "id": 33799, "isConstant": false, "isLValue": false, "isPure": false, @@ -28028,7 +28284,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16522:12:20", + "src": "16345:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -28050,33 +28306,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29573, + "id": 33791, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "16490:7:20", + "referencedDeclaration": 32093, + "src": "16313:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29574, + "id": 33792, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "16498:10:20", + "memberLocation": "16321:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "16490:18:20", + "referencedDeclaration": 27505, + "src": "16313:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29575, + "id": 33793, "isConstant": false, "isLValue": false, "isPure": false, @@ -28085,7 +28341,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16490:20:20", + "src": "16313:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -28100,18 +28356,18 @@ "typeString": "address" } ], - "id": 29572, + "id": 33790, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "16483:6:20", + "referencedDeclaration": 29158, + "src": "16306:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29576, + "id": 33794, "isConstant": false, "isLValue": false, "isPure": false, @@ -28120,29 +28376,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16483:28:20", + "src": "16306:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29577, + "id": 33795, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "16512:9:20", + "memberLocation": "16335:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "16483:38:20", + "referencedDeclaration": 29097, + "src": "16306:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29582, + "id": 33800, "isConstant": false, "isLValue": false, "isPure": false, @@ -28151,7 +28407,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16483:52:20", + "src": "16306:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -28165,7 +28421,7 @@ "typeIdentifier": "t_rational_600000000000000000000000_by_1", "typeString": "int_const 600000000000000000000000" }, - "id": 29587, + "id": 33805, "isConstant": false, "isLValue": false, "isPure": true, @@ -28175,21 +28431,21 @@ "typeIdentifier": "t_rational_60000000000000000000000000_by_1", "typeString": "int_const 60000000000000000000000000" }, - "id": 29585, + "id": 33803, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "315f3030305f303030", - "id": 29583, + "id": 33801, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16538:15:20", + "src": "16361:15:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", @@ -28201,21 +28457,21 @@ "operator": "*", "rightExpression": { "hexValue": "3630", - "id": 29584, + "id": 33802, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16556:2:20", + "src": "16379:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_60_by_1", "typeString": "int_const 60" }, "value": "60" }, - "src": "16538:20:20", + "src": "16361:20:31", "typeDescriptions": { "typeIdentifier": "t_rational_60000000000000000000000000_by_1", "typeString": "int_const 60000000000000000000000000" @@ -28225,35 +28481,35 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29586, + "id": 33804, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16561:3:20", + "src": "16384:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "16538:26:20", + "src": "16361:26:31", "typeDescriptions": { "typeIdentifier": "t_rational_600000000000000000000000_by_1", "typeString": "int_const 600000000000000000000000" } } ], - "id": 29588, + "id": 33806, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "16537:28:20", + "src": "16360:28:31", "typeDescriptions": { "typeIdentifier": "t_rational_600000000000000000000000_by_1", "typeString": "int_const 600000000000000000000000" @@ -28271,20 +28527,20 @@ "typeString": "int_const 600000000000000000000000" } ], - "id": 29571, + "id": 33789, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -28297,13 +28553,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "16474:8:20", + "src": "16297:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29589, + "id": 33807, "isConstant": false, "isLValue": false, "isPure": false, @@ -28312,30 +28568,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16474:92:20", + "src": "16297:92:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29590, + "id": 33808, "nodeType": "ExpressionStatement", - "src": "16474:92:20" + "src": "16297:92:31" }, { "expression": { "arguments": [ { "hexValue": "3230", - "id": 29592, + "id": 33810, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16637:8:20", + "src": "16460:8:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_12096000_by_1", @@ -28351,18 +28607,18 @@ "typeString": "int_const 12096000" } ], - "id": 29591, + "id": 33809, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "16632:4:20", + "referencedDeclaration": 4833, + "src": "16455:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29593, + "id": 33811, "isConstant": false, "isLValue": false, "isPure": false, @@ -28371,16 +28627,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16632:14:20", + "src": "16455:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29594, + "id": 33812, "nodeType": "ExpressionStatement", - "src": "16632:14:20" + "src": "16455:14:31" }, { "expression": { @@ -28390,14 +28646,14 @@ { "arguments": [ { - "id": 29600, + "id": 33818, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "16766:7:20", + "referencedDeclaration": 32093, + "src": "16589:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -28405,30 +28661,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29599, + "id": 33817, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16758:7:20", + "src": "16581:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29598, + "id": 33816, "name": "address", "nodeType": "ElementaryTypeName", - "src": "16758:7:20", + "src": "16581:7:31", "typeDescriptions": {} } }, - "id": 29601, + "id": 33819, "isConstant": false, "isLValue": false, "isPure": false, @@ -28437,7 +28693,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16758:16:20", + "src": "16581:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -28453,33 +28709,33 @@ } ], "expression": { - "id": 29596, + "id": 33814, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "16744:3:20", + "referencedDeclaration": 31565, + "src": "16567:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29597, + "id": 33815, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "16748:9:20", + "memberLocation": "16571:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "16744:13:20", + "referencedDeclaration": 30378, + "src": "16567:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29602, + "id": 33820, "isConstant": false, "isLValue": false, "isPure": false, @@ -28488,7 +28744,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16744:31:20", + "src": "16567:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -28503,18 +28759,18 @@ "typeString": "bool" } ], - "id": 29595, + "id": 33813, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "16737:6:20", + "src": "16560:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29603, + "id": 33821, "isConstant": false, "isLValue": false, "isPure": false, @@ -28523,16 +28779,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16737:39:20", + "src": "16560:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29604, + "id": 33822, "nodeType": "ExpressionStatement", - "src": "16737:39:20" + "src": "16560:39:31" }, { "expression": { @@ -28542,14 +28798,14 @@ { "arguments": [ { - "id": 29614, + "id": 33832, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "16898:3:20", + "referencedDeclaration": 31565, + "src": "16721:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -28557,30 +28813,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29613, + "id": 33831, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16890:7:20", + "src": "16713:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29612, + "id": 33830, "name": "address", "nodeType": "ElementaryTypeName", - "src": "16890:7:20", + "src": "16713:7:31", "typeDescriptions": {} } }, - "id": 29615, + "id": 33833, "isConstant": false, "isLValue": false, "isPure": false, @@ -28589,7 +28845,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16890:12:20", + "src": "16713:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -28611,33 +28867,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29607, + "id": 33825, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "16858:7:20", + "referencedDeclaration": 32093, + "src": "16681:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29608, + "id": 33826, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "16866:10:20", + "memberLocation": "16689:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "16858:18:20", + "referencedDeclaration": 27505, + "src": "16681:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29609, + "id": 33827, "isConstant": false, "isLValue": false, "isPure": false, @@ -28646,7 +28902,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16858:20:20", + "src": "16681:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -28661,18 +28917,18 @@ "typeString": "address" } ], - "id": 29606, + "id": 33824, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "16851:6:20", + "referencedDeclaration": 29158, + "src": "16674:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29610, + "id": 33828, "isConstant": false, "isLValue": false, "isPure": false, @@ -28681,29 +28937,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16851:28:20", + "src": "16674:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29611, + "id": 33829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "16880:9:20", + "memberLocation": "16703:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "16851:38:20", + "referencedDeclaration": 29097, + "src": "16674:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29616, + "id": 33834, "isConstant": false, "isLValue": false, "isPure": false, @@ -28712,7 +28968,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16851:52:20", + "src": "16674:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -28723,14 +28979,14 @@ "components": [ { "hexValue": "315f3030305f303030", - "id": 29617, + "id": 33835, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16906:15:20", + "src": "16729:15:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", @@ -28739,14 +28995,14 @@ "value": "1_000_000" } ], - "id": 29618, + "id": 33836, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "16905:17:20", + "src": "16728:17:31", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000" @@ -28764,20 +29020,20 @@ "typeString": "int_const 1000000000000000000000000" } ], - "id": 29605, + "id": 33823, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -28790,13 +29046,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "16842:8:20", + "src": "16665:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29619, + "id": 33837, "isConstant": false, "isLValue": false, "isPure": false, @@ -28805,30 +29061,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16842:81:20", + "src": "16665:81:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29620, + "id": 33838, "nodeType": "ExpressionStatement", - "src": "16842:81:20" + "src": "16665:81:31" }, { "expression": { "arguments": [ { "hexValue": "3532", - "id": 29622, + "id": 33840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16973:8:20", + "src": "16796:8:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_31449600_by_1", @@ -28844,18 +29100,18 @@ "typeString": "int_const 31449600" } ], - "id": 29621, + "id": 33839, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "16968:4:20", + "referencedDeclaration": 4833, + "src": "16791:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29623, + "id": 33841, "isConstant": false, "isLValue": false, "isPure": false, @@ -28864,16 +29120,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16968:14:20", + "src": "16791:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29624, + "id": 33842, "nodeType": "ExpressionStatement", - "src": "16968:14:20" + "src": "16791:14:31" }, { "expression": { @@ -28883,14 +29139,14 @@ { "arguments": [ { - "id": 29630, + "id": 33848, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "17098:7:20", + "referencedDeclaration": 32093, + "src": "16921:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -28898,30 +29154,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29629, + "id": 33847, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17090:7:20", + "src": "16913:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29628, + "id": 33846, "name": "address", "nodeType": "ElementaryTypeName", - "src": "17090:7:20", + "src": "16913:7:31", "typeDescriptions": {} } }, - "id": 29631, + "id": 33849, "isConstant": false, "isLValue": false, "isPure": false, @@ -28930,7 +29186,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17090:16:20", + "src": "16913:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -28946,33 +29202,33 @@ } ], "expression": { - "id": 29626, + "id": 33844, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "17076:3:20", + "referencedDeclaration": 31568, + "src": "16899:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29627, + "id": 33845, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "17080:9:20", + "memberLocation": "16903:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "17076:13:20", + "referencedDeclaration": 30378, + "src": "16899:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29632, + "id": 33850, "isConstant": false, "isLValue": false, "isPure": false, @@ -28981,7 +29237,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17076:31:20", + "src": "16899:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -28996,18 +29252,18 @@ "typeString": "bool" } ], - "id": 29625, + "id": 33843, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "17069:6:20", + "src": "16892:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29633, + "id": 33851, "isConstant": false, "isLValue": false, "isPure": false, @@ -29016,16 +29272,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17069:39:20", + "src": "16892:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29634, + "id": 33852, "nodeType": "ExpressionStatement", - "src": "17069:39:20" + "src": "16892:39:31" }, { "expression": { @@ -29035,14 +29291,14 @@ { "arguments": [ { - "id": 29644, + "id": 33862, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "17238:3:20", + "referencedDeclaration": 31568, + "src": "17061:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -29050,30 +29306,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29643, + "id": 33861, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17230:7:20", + "src": "17053:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29642, + "id": 33860, "name": "address", "nodeType": "ElementaryTypeName", - "src": "17230:7:20", + "src": "17053:7:31", "typeDescriptions": {} } }, - "id": 29645, + "id": 33863, "isConstant": false, "isLValue": false, "isPure": false, @@ -29082,7 +29338,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17230:12:20", + "src": "17053:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -29104,33 +29360,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29637, + "id": 33855, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "17198:7:20", + "referencedDeclaration": 32093, + "src": "17021:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29638, + "id": 33856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "17206:10:20", + "memberLocation": "17029:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "17198:18:20", + "referencedDeclaration": 27505, + "src": "17021:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29639, + "id": 33857, "isConstant": false, "isLValue": false, "isPure": false, @@ -29139,7 +29395,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17198:20:20", + "src": "17021:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -29154,18 +29410,18 @@ "typeString": "address" } ], - "id": 29636, + "id": 33854, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "17191:6:20", + "referencedDeclaration": 29158, + "src": "17014:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29640, + "id": 33858, "isConstant": false, "isLValue": false, "isPure": false, @@ -29174,29 +29430,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17191:28:20", + "src": "17014:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29641, + "id": 33859, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "17220:9:20", + "memberLocation": "17043:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "17191:38:20", + "referencedDeclaration": 29097, + "src": "17014:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29646, + "id": 33864, "isConstant": false, "isLValue": false, "isPure": false, @@ -29205,7 +29461,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17191:52:20", + "src": "17014:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -29216,14 +29472,14 @@ "components": [ { "hexValue": "315f3030305f303030", - "id": 29647, + "id": 33865, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17246:15:20", + "src": "17069:15:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", @@ -29232,14 +29488,14 @@ "value": "1_000_000" } ], - "id": 29648, + "id": 33866, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "17245:17:20", + "src": "17068:17:31", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000000000_by_1", "typeString": "int_const 1000000000000000000000000" @@ -29257,20 +29513,20 @@ "typeString": "int_const 1000000000000000000000000" } ], - "id": 29635, + "id": 33853, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -29283,13 +29539,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "17182:8:20", + "src": "17005:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29649, + "id": 33867, "isConstant": false, "isLValue": false, "isPure": false, @@ -29298,23 +29554,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17182:81:20", + "src": "17005:81:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29650, + "id": 33868, "nodeType": "ExpressionStatement", - "src": "17182:81:20" + "src": "17005:81:31" } ] }, "documentation": { - "id": 29456, + "id": 33672, "nodeType": "StructuredDocumentation", - "src": "15157:36:20", + "src": "15002:36:31", "text": "@dev Verifies claim() edge cases" }, "functionSelector": "c947e25d", @@ -29322,49 +29578,49 @@ "kind": "function", "modifiers": [], "name": "test_vesting_claim_edge_cases", - "nameLocation": "15208:29:20", + "nameLocation": "15053:29:31", "parameters": { - "id": 29457, + "id": 33673, "nodeType": "ParameterList", "parameters": [], - "src": "15237:2:20" + "src": "15082:2:31" }, "returnParameters": { - "id": 29458, + "id": 33674, "nodeType": "ParameterList", "parameters": [], - "src": "15247:0:20" + "src": "15092:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 29891, + "id": 34111, "nodeType": "FunctionDefinition", - "src": "17340:2006:20", + "src": "17163:1984:31", "nodes": [], "body": { - "id": 29890, + "id": 34110, "nodeType": "Block", - "src": "17401:1945:20", + "src": "17224:1923:31", "nodes": [], "statements": [ { "expression": { - "id": 29664, + "id": 33882, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 29658, + "id": 33876, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29655, - "src": "17412:7:20", + "referencedDeclaration": 33873, + "src": "17235:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29375,12 +29631,12 @@ "rightHandSide": { "arguments": [ { - "id": 29660, + "id": 33878, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29655, - "src": "17428:7:20", + "referencedDeclaration": 33873, + "src": "17251:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29388,14 +29644,14 @@ }, { "hexValue": "3130305f303030", - "id": 29661, + "id": 33879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17437:13:20", + "src": "17260:13:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_100000000000000000000000_by_1", @@ -29405,14 +29661,14 @@ }, { "hexValue": "3130305f3030305f303030", - "id": 29662, + "id": 33880, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17452:17:20", + "src": "17275:17:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_100000000000000000000000000_by_1", @@ -29436,21 +29692,21 @@ "typeString": "int_const 100000000000000000000000000" } ], - "id": 29659, + "id": 33877, "name": "bound", "nodeType": "Identifier", "overloadedDeclarations": [ - 7670, - 7800 + 7707, + 7837 ], - "referencedDeclaration": 7670, - "src": "17422:5:20", + "referencedDeclaration": 7707, + "src": "17245:5:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) view returns (uint256)" } }, - "id": 29663, + "id": 33881, "isConstant": false, "isLValue": false, "isPure": false, @@ -29459,53 +29715,84 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17422:48:20", + "src": "17245:48:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "17412:58:20", + "src": "17235:58:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 29665, + "id": 33883, "nodeType": "ExpressionStatement", - "src": "17412:58:20" + "src": "17235:58:31" }, { "expression": { "arguments": [ { - "hexValue": "307863303065393443623636324333353230323832453666353731373231343030344137663236383838", - "id": 29667, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 33885, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32093, + "src": "17370:7:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28096", + "typeString": "contract Vesting" + } + }, + "id": 33886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17378:10:31", + "memberName": "proveToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 27505, + "src": "17370:18:31", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 33887, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "17547:42:20", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17370:20:31", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "value": "0xc00e94Cb662C3520282E6f5717214004A7f26888" + } }, { "arguments": [ { - "id": 29670, + "id": 33890, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "17599:7:20", + "referencedDeclaration": 32093, + "src": "17400:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -29513,30 +29800,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29669, + "id": 33889, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17591:7:20", + "src": "17392:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29668, + "id": 33888, "name": "address", "nodeType": "ElementaryTypeName", - "src": "17591:7:20", + "src": "17392:7:31", "typeDescriptions": {} } }, - "id": 29671, + "id": 33891, "isConstant": false, "isLValue": false, "isPure": false, @@ -29545,7 +29832,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17591:16:20", + "src": "17392:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -29553,12 +29840,12 @@ } }, { - "id": 29672, + "id": 33892, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29655, - "src": "17609:7:20", + "referencedDeclaration": 33873, + "src": "17410:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29580,22 +29867,22 @@ "typeString": "uint256" } ], - "id": 29666, + "id": 33884, "name": "deal", "nodeType": "Identifier", "overloadedDeclarations": [ - 5023, - 5040, - 5143 + 5060, + 5077, + 5180 ], - "referencedDeclaration": 5040, - "src": "17542:4:20", + "referencedDeclaration": 5077, + "src": "17365:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 29673, + "id": 33893, "isConstant": false, "isLValue": false, "isPure": false, @@ -29604,16 +29891,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17542:75:20", + "src": "17365:53:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29674, + "id": 33894, "nodeType": "ExpressionStatement", - "src": "17542:75:20" + "src": "17365:53:31" }, { "expression": { @@ -29621,14 +29908,14 @@ { "arguments": [ { - "id": 29680, + "id": 33900, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "17686:3:20", + "referencedDeclaration": 31571, + "src": "17487:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -29636,30 +29923,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29679, + "id": 33899, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17678:7:20", + "src": "17479:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29678, + "id": 33898, "name": "address", "nodeType": "ElementaryTypeName", - "src": "17678:7:20", + "src": "17479:7:31", "typeDescriptions": {} } }, - "id": 29681, + "id": 33901, "isConstant": false, "isLValue": false, "isPure": false, @@ -29668,7 +29955,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17678:12:20", + "src": "17479:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -29684,33 +29971,33 @@ } ], "expression": { - "id": 29675, + "id": 33895, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "17664:2:20", + "src": "17465:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 29677, + "id": 33897, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "17667:10:20", + "memberLocation": "17468:10:31", "memberName": "startPrank", "nodeType": "MemberAccess", - "referencedDeclaration": 9043, - "src": "17664:13:20", + "referencedDeclaration": 9080, + "src": "17465:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 29682, + "id": 33902, "isConstant": false, "isLValue": false, "isPure": false, @@ -29719,16 +30006,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17664:27:20", + "src": "17465:27:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29683, + "id": 33903, "nodeType": "ExpressionStatement", - "src": "17664:27:20" + "src": "17465:27:31" }, { "expression": { @@ -29738,14 +30025,14 @@ { "arguments": [ { - "id": 29689, + "id": 33909, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "17770:7:20", + "referencedDeclaration": 32093, + "src": "17571:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -29753,30 +30040,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29688, + "id": 33908, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17762:7:20", + "src": "17563:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29687, + "id": 33907, "name": "address", "nodeType": "ElementaryTypeName", - "src": "17762:7:20", + "src": "17563:7:31", "typeDescriptions": {} } }, - "id": 29690, + "id": 33910, "isConstant": false, "isLValue": false, "isPure": false, @@ -29785,7 +30072,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17762:16:20", + "src": "17563:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -29795,14 +30082,14 @@ { "arguments": [ { - "id": 29693, + "id": 33913, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "17788:3:20", + "referencedDeclaration": 31571, + "src": "17589:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -29810,30 +30097,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29692, + "id": 33912, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17780:7:20", + "src": "17581:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29691, + "id": 33911, "name": "address", "nodeType": "ElementaryTypeName", - "src": "17780:7:20", + "src": "17581:7:31", "typeDescriptions": {} } }, - "id": 29694, + "id": 33914, "isConstant": false, "isLValue": false, "isPure": false, @@ -29842,7 +30129,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17780:12:20", + "src": "17581:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -29850,12 +30137,12 @@ } }, { - "id": 29695, + "id": 33915, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29655, - "src": "17794:7:20", + "referencedDeclaration": 33873, + "src": "17595:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29878,33 +30165,33 @@ } ], "expression": { - "id": 29685, + "id": 33905, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "17742:3:20", + "referencedDeclaration": 31568, + "src": "17543:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29686, + "id": 33906, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "17746:15:20", + "memberLocation": "17547:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "17742:19:20", + "referencedDeclaration": 30294, + "src": "17543:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 29696, + "id": 33916, "isConstant": false, "isLValue": false, "isPure": false, @@ -29913,7 +30200,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17742:60:20", + "src": "17543:60:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -29928,18 +30215,18 @@ "typeString": "bool" } ], - "id": 29684, + "id": 33904, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "17735:6:20", + "src": "17536:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29697, + "id": 33917, "isConstant": false, "isLValue": false, "isPure": false, @@ -29948,16 +30235,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17735:68:20", + "src": "17536:68:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29698, + "id": 33918, "nodeType": "ExpressionStatement", - "src": "17735:68:20" + "src": "17536:68:31" }, { "expression": { @@ -29967,14 +30254,14 @@ { "arguments": [ { - "id": 29704, + "id": 33924, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "17879:7:20", + "referencedDeclaration": 32093, + "src": "17680:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -29982,30 +30269,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29703, + "id": 33923, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17871:7:20", + "src": "17672:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29702, + "id": 33922, "name": "address", "nodeType": "ElementaryTypeName", - "src": "17871:7:20", + "src": "17672:7:31", "typeDescriptions": {} } }, - "id": 29705, + "id": 33925, "isConstant": false, "isLValue": false, "isPure": false, @@ -30014,7 +30301,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17871:16:20", + "src": "17672:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -30030,33 +30317,33 @@ } ], "expression": { - "id": 29700, + "id": 33920, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "17849:3:20", + "referencedDeclaration": 31568, + "src": "17650:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29701, + "id": 33921, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "17853:17:20", + "memberLocation": "17654:17:31", "memberName": "try_enableVesting", "nodeType": "MemberAccess", - "referencedDeclaration": 27182, - "src": "17849:21:20", + "referencedDeclaration": 30232, + "src": "17650:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29706, + "id": 33926, "isConstant": false, "isLValue": false, "isPure": false, @@ -30065,7 +30352,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17849:39:20", + "src": "17650:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -30080,18 +30367,18 @@ "typeString": "bool" } ], - "id": 29699, + "id": 33919, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "17842:6:20", + "src": "17643:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29707, + "id": 33927, "isConstant": false, "isLValue": false, "isPure": false, @@ -30100,16 +30387,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17842:47:20", + "src": "17643:47:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29708, + "id": 33928, "nodeType": "ExpressionStatement", - "src": "17842:47:20" + "src": "17643:47:31" }, { "expression": { @@ -30119,14 +30406,14 @@ { "arguments": [ { - "id": 29718, + "id": 33938, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "17986:3:20", + "referencedDeclaration": 31571, + "src": "17787:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -30134,30 +30421,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29717, + "id": 33937, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17978:7:20", + "src": "17779:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29716, + "id": 33936, "name": "address", "nodeType": "ElementaryTypeName", - "src": "17978:7:20", + "src": "17779:7:31", "typeDescriptions": {} } }, - "id": 29719, + "id": 33939, "isConstant": false, "isLValue": false, "isPure": false, @@ -30166,7 +30453,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17978:12:20", + "src": "17779:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -30188,33 +30475,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29711, + "id": 33931, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "17946:7:20", + "referencedDeclaration": 32093, + "src": "17747:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29712, + "id": 33932, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "17954:10:20", + "memberLocation": "17755:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "17946:18:20", + "referencedDeclaration": 27505, + "src": "17747:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29713, + "id": 33933, "isConstant": false, "isLValue": false, "isPure": false, @@ -30223,7 +30510,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17946:20:20", + "src": "17747:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -30238,18 +30525,18 @@ "typeString": "address" } ], - "id": 29710, + "id": 33930, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "17939:6:20", + "referencedDeclaration": 29158, + "src": "17740:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29714, + "id": 33934, "isConstant": false, "isLValue": false, "isPure": false, @@ -30258,29 +30545,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17939:28:20", + "src": "17740:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29715, + "id": 33935, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "17968:9:20", + "memberLocation": "17769:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "17939:38:20", + "referencedDeclaration": 29097, + "src": "17740:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29720, + "id": 33940, "isConstant": false, "isLValue": false, "isPure": false, @@ -30289,7 +30576,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17939:52:20", + "src": "17740:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -30298,14 +30585,14 @@ }, { "hexValue": "30", - "id": 29721, + "id": 33941, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17993:1:20", + "src": "17794:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -30324,20 +30611,20 @@ "typeString": "int_const 0" } ], - "id": 29709, + "id": 33929, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -30350,13 +30637,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "17930:8:20", + "src": "17731:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29722, + "id": 33942, "isConstant": false, "isLValue": false, "isPure": false, @@ -30365,16 +30652,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "17930:65:20", + "src": "17731:65:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29723, + "id": 33943, "nodeType": "ExpressionStatement", - "src": "17930:65:20" + "src": "17731:65:31" }, { "expression": { @@ -30384,14 +30671,14 @@ { "arguments": [ { - "id": 29729, + "id": 33949, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "18076:7:20", + "referencedDeclaration": 32093, + "src": "17877:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -30399,30 +30686,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29728, + "id": 33948, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "18068:7:20", + "src": "17869:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29727, + "id": 33947, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18068:7:20", + "src": "17869:7:31", "typeDescriptions": {} } }, - "id": 29730, + "id": 33950, "isConstant": false, "isLValue": false, "isPure": false, @@ -30431,7 +30718,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18068:16:20", + "src": "17869:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -30447,33 +30734,33 @@ } ], "expression": { - "id": 29725, + "id": 33945, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "18054:3:20", + "referencedDeclaration": 31571, + "src": "17855:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29726, + "id": 33946, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "18058:9:20", + "memberLocation": "17859:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "18054:13:20", + "referencedDeclaration": 30378, + "src": "17855:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29731, + "id": 33951, "isConstant": false, "isLValue": false, "isPure": false, @@ -30482,7 +30769,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18054:31:20", + "src": "17855:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -30497,18 +30784,18 @@ "typeString": "bool" } ], - "id": 29724, + "id": 33944, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "18047:6:20", + "src": "17848:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29732, + "id": 33952, "isConstant": false, "isLValue": false, "isPure": false, @@ -30517,16 +30804,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18047:39:20", + "src": "17848:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29733, + "id": 33953, "nodeType": "ExpressionStatement", - "src": "18047:39:20" + "src": "17848:39:31" }, { "expression": { @@ -30536,14 +30823,14 @@ { "arguments": [ { - "id": 29743, + "id": 33963, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "18186:3:20", + "referencedDeclaration": 31571, + "src": "17987:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -30551,30 +30838,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29742, + "id": 33962, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "18178:7:20", + "src": "17979:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29741, + "id": 33961, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18178:7:20", + "src": "17979:7:31", "typeDescriptions": {} } }, - "id": 29744, + "id": 33964, "isConstant": false, "isLValue": false, "isPure": false, @@ -30583,7 +30870,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18178:12:20", + "src": "17979:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -30605,33 +30892,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29736, + "id": 33956, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "18146:7:20", + "referencedDeclaration": 32093, + "src": "17947:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29737, + "id": 33957, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "18154:10:20", + "memberLocation": "17955:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "18146:18:20", + "referencedDeclaration": 27505, + "src": "17947:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29738, + "id": 33958, "isConstant": false, "isLValue": false, "isPure": false, @@ -30640,7 +30927,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18146:20:20", + "src": "17947:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -30655,18 +30942,18 @@ "typeString": "address" } ], - "id": 29735, + "id": 33955, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "18139:6:20", + "referencedDeclaration": 29158, + "src": "17940:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29739, + "id": 33959, "isConstant": false, "isLValue": false, "isPure": false, @@ -30675,29 +30962,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18139:28:20", + "src": "17940:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29740, + "id": 33960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "18168:9:20", + "memberLocation": "17969:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "18139:38:20", + "referencedDeclaration": 29097, + "src": "17940:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29745, + "id": 33965, "isConstant": false, "isLValue": false, "isPure": false, @@ -30706,7 +30993,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18139:52:20", + "src": "17940:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -30718,7 +31005,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29750, + "id": 33970, "isConstant": false, "isLValue": false, "isPure": false, @@ -30728,18 +31015,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29748, + "id": 33968, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29746, + "id": 33966, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29655, - "src": "18193:7:20", + "referencedDeclaration": 33873, + "src": "17994:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30749,21 +31036,21 @@ "operator": "*", "rightExpression": { "hexValue": "3132", - "id": 29747, + "id": 33967, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18203:2:20", + "src": "18004:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", "typeString": "int_const 12" }, "value": "12" }, - "src": "18193:12:20", + "src": "17994:12:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30773,21 +31060,21 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29749, + "id": 33969, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18208:3:20", + "src": "18009:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "18193:18:20", + "src": "17994:18:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30795,14 +31082,14 @@ }, { "hexValue": "31", - "id": 29751, + "id": 33971, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18213:7:20", + "src": "18014:7:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -30826,18 +31113,18 @@ "typeString": "int_const 1000000000000000000" } ], - "id": 29734, + "id": 33954, "name": "withinDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27818, - "src": "18128:10:20", + "referencedDeclaration": 32022, + "src": "17929:10:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256)" } }, - "id": 29752, + "id": 33972, "isConstant": false, "isLValue": false, "isPure": false, @@ -30846,30 +31133,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18128:93:20", + "src": "17929:93:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29753, + "id": 33973, "nodeType": "ExpressionStatement", - "src": "18128:93:20" + "src": "17929:93:31" }, { "expression": { "arguments": [ { "hexValue": "34", - "id": 29755, + "id": 33975, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18264:7:20", + "src": "18065:7:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_2419200_by_1", @@ -30885,18 +31172,18 @@ "typeString": "int_const 2419200" } ], - "id": 29754, + "id": 33974, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "18259:4:20", + "referencedDeclaration": 4833, + "src": "18060:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29756, + "id": 33976, "isConstant": false, "isLValue": false, "isPure": false, @@ -30905,16 +31192,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18259:13:20", + "src": "18060:13:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29757, + "id": 33977, "nodeType": "ExpressionStatement", - "src": "18259:13:20" + "src": "18060:13:31" }, { "expression": { @@ -30924,14 +31211,14 @@ { "arguments": [ { - "id": 29763, + "id": 33983, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "18353:7:20", + "referencedDeclaration": 32093, + "src": "18154:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -30939,30 +31226,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29762, + "id": 33982, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "18345:7:20", + "src": "18146:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29761, + "id": 33981, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18345:7:20", + "src": "18146:7:31", "typeDescriptions": {} } }, - "id": 29764, + "id": 33984, "isConstant": false, "isLValue": false, "isPure": false, @@ -30971,7 +31258,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18345:16:20", + "src": "18146:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -30987,33 +31274,33 @@ } ], "expression": { - "id": 29759, + "id": 33979, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "18331:3:20", + "referencedDeclaration": 31571, + "src": "18132:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29760, + "id": 33980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "18335:9:20", + "memberLocation": "18136:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "18331:13:20", + "referencedDeclaration": 30378, + "src": "18132:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29765, + "id": 33985, "isConstant": false, "isLValue": false, "isPure": false, @@ -31022,7 +31309,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18331:31:20", + "src": "18132:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -31037,18 +31324,18 @@ "typeString": "bool" } ], - "id": 29758, + "id": 33978, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "18324:6:20", + "src": "18125:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29766, + "id": 33986, "isConstant": false, "isLValue": false, "isPure": false, @@ -31057,16 +31344,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18324:39:20", + "src": "18125:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29767, + "id": 33987, "nodeType": "ExpressionStatement", - "src": "18324:39:20" + "src": "18125:39:31" }, { "expression": { @@ -31076,14 +31363,14 @@ { "arguments": [ { - "id": 29777, + "id": 33997, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "18463:3:20", + "referencedDeclaration": 31571, + "src": "18264:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -31091,30 +31378,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29776, + "id": 33996, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "18455:7:20", + "src": "18256:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29775, + "id": 33995, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18455:7:20", + "src": "18256:7:31", "typeDescriptions": {} } }, - "id": 29778, + "id": 33998, "isConstant": false, "isLValue": false, "isPure": false, @@ -31123,7 +31410,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18455:12:20", + "src": "18256:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -31145,33 +31432,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29770, + "id": 33990, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "18423:7:20", + "referencedDeclaration": 32093, + "src": "18224:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29771, + "id": 33991, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "18431:10:20", + "memberLocation": "18232:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "18423:18:20", + "referencedDeclaration": 27505, + "src": "18224:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29772, + "id": 33992, "isConstant": false, "isLValue": false, "isPure": false, @@ -31180,7 +31467,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18423:20:20", + "src": "18224:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -31195,18 +31482,18 @@ "typeString": "address" } ], - "id": 29769, + "id": 33989, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "18416:6:20", + "referencedDeclaration": 29158, + "src": "18217:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29773, + "id": 33993, "isConstant": false, "isLValue": false, "isPure": false, @@ -31215,29 +31502,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18416:28:20", + "src": "18217:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29774, + "id": 33994, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "18445:9:20", + "memberLocation": "18246:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "18416:38:20", + "referencedDeclaration": 29097, + "src": "18217:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29779, + "id": 33999, "isConstant": false, "isLValue": false, "isPure": false, @@ -31246,7 +31533,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18416:52:20", + "src": "18217:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -31258,7 +31545,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29784, + "id": 34004, "isConstant": false, "isLValue": false, "isPure": false, @@ -31268,18 +31555,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29782, + "id": 34002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29780, + "id": 34000, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29655, - "src": "18470:7:20", + "referencedDeclaration": 33873, + "src": "18271:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31289,21 +31576,21 @@ "operator": "*", "rightExpression": { "hexValue": "3230", - "id": 29781, + "id": 34001, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18480:2:20", + "src": "18281:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_20_by_1", "typeString": "int_const 20" }, "value": "20" }, - "src": "18470:12:20", + "src": "18271:12:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31313,21 +31600,21 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29783, + "id": 34003, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18485:3:20", + "src": "18286:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "18470:18:20", + "src": "18271:18:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31335,14 +31622,14 @@ }, { "hexValue": "31", - "id": 29785, + "id": 34005, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18490:7:20", + "src": "18291:7:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -31366,18 +31653,18 @@ "typeString": "int_const 1000000000000000000" } ], - "id": 29768, + "id": 33988, "name": "withinDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27818, - "src": "18405:10:20", + "referencedDeclaration": 32022, + "src": "18206:10:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256)" } }, - "id": 29786, + "id": 34006, "isConstant": false, "isLValue": false, "isPure": false, @@ -31386,30 +31673,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18405:93:20", + "src": "18206:93:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29787, + "id": 34007, "nodeType": "ExpressionStatement", - "src": "18405:93:20" + "src": "18206:93:31" }, { "expression": { "arguments": [ { "hexValue": "34", - "id": 29789, + "id": 34009, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18541:7:20", + "src": "18342:7:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_2419200_by_1", @@ -31425,18 +31712,18 @@ "typeString": "int_const 2419200" } ], - "id": 29788, + "id": 34008, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "18536:4:20", + "referencedDeclaration": 4833, + "src": "18337:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29790, + "id": 34010, "isConstant": false, "isLValue": false, "isPure": false, @@ -31445,16 +31732,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18536:13:20", + "src": "18337:13:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29791, + "id": 34011, "nodeType": "ExpressionStatement", - "src": "18536:13:20" + "src": "18337:13:31" }, { "expression": { @@ -31464,14 +31751,14 @@ { "arguments": [ { - "id": 29797, + "id": 34017, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "18630:7:20", + "referencedDeclaration": 32093, + "src": "18431:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -31479,30 +31766,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29796, + "id": 34016, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "18622:7:20", + "src": "18423:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29795, + "id": 34015, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18622:7:20", + "src": "18423:7:31", "typeDescriptions": {} } }, - "id": 29798, + "id": 34018, "isConstant": false, "isLValue": false, "isPure": false, @@ -31511,7 +31798,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18622:16:20", + "src": "18423:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -31527,33 +31814,33 @@ } ], "expression": { - "id": 29793, + "id": 34013, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "18608:3:20", + "referencedDeclaration": 31571, + "src": "18409:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29794, + "id": 34014, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "18612:9:20", + "memberLocation": "18413:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "18608:13:20", + "referencedDeclaration": 30378, + "src": "18409:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29799, + "id": 34019, "isConstant": false, "isLValue": false, "isPure": false, @@ -31562,7 +31849,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18608:31:20", + "src": "18409:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -31577,18 +31864,18 @@ "typeString": "bool" } ], - "id": 29792, + "id": 34012, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "18601:6:20", + "src": "18402:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29800, + "id": 34020, "isConstant": false, "isLValue": false, "isPure": false, @@ -31597,16 +31884,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18601:39:20", + "src": "18402:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29801, + "id": 34021, "nodeType": "ExpressionStatement", - "src": "18601:39:20" + "src": "18402:39:31" }, { "expression": { @@ -31616,14 +31903,14 @@ { "arguments": [ { - "id": 29811, + "id": 34031, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "18740:3:20", + "referencedDeclaration": 31571, + "src": "18541:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -31631,30 +31918,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29810, + "id": 34030, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "18732:7:20", + "src": "18533:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29809, + "id": 34029, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18732:7:20", + "src": "18533:7:31", "typeDescriptions": {} } }, - "id": 29812, + "id": 34032, "isConstant": false, "isLValue": false, "isPure": false, @@ -31663,7 +31950,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18732:12:20", + "src": "18533:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -31685,33 +31972,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29804, + "id": 34024, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "18700:7:20", + "referencedDeclaration": 32093, + "src": "18501:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29805, + "id": 34025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "18708:10:20", + "memberLocation": "18509:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "18700:18:20", + "referencedDeclaration": 27505, + "src": "18501:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29806, + "id": 34026, "isConstant": false, "isLValue": false, "isPure": false, @@ -31720,7 +32007,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18700:20:20", + "src": "18501:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -31735,18 +32022,18 @@ "typeString": "address" } ], - "id": 29803, + "id": 34023, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "18693:6:20", + "referencedDeclaration": 29158, + "src": "18494:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29807, + "id": 34027, "isConstant": false, "isLValue": false, "isPure": false, @@ -31755,29 +32042,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18693:28:20", + "src": "18494:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29808, + "id": 34028, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "18722:9:20", + "memberLocation": "18523:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "18693:38:20", + "referencedDeclaration": 29097, + "src": "18494:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29813, + "id": 34033, "isConstant": false, "isLValue": false, "isPure": false, @@ -31786,7 +32073,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18693:52:20", + "src": "18494:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -31798,7 +32085,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29818, + "id": 34038, "isConstant": false, "isLValue": false, "isPure": false, @@ -31808,18 +32095,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29816, + "id": 34036, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29814, + "id": 34034, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29655, - "src": "18747:7:20", + "referencedDeclaration": 33873, + "src": "18548:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31829,21 +32116,21 @@ "operator": "*", "rightExpression": { "hexValue": "3238", - "id": 29815, + "id": 34035, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18757:2:20", + "src": "18558:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_28_by_1", "typeString": "int_const 28" }, "value": "28" }, - "src": "18747:12:20", + "src": "18548:12:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31853,21 +32140,21 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29817, + "id": 34037, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18762:3:20", + "src": "18563:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "18747:18:20", + "src": "18548:18:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31875,14 +32162,14 @@ }, { "hexValue": "31", - "id": 29819, + "id": 34039, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18767:7:20", + "src": "18568:7:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -31906,18 +32193,18 @@ "typeString": "int_const 1000000000000000000" } ], - "id": 29802, + "id": 34022, "name": "withinDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27818, - "src": "18682:10:20", + "referencedDeclaration": 32022, + "src": "18483:10:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256)" } }, - "id": 29820, + "id": 34040, "isConstant": false, "isLValue": false, "isPure": false, @@ -31926,30 +32213,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18682:93:20", + "src": "18483:93:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29821, + "id": 34041, "nodeType": "ExpressionStatement", - "src": "18682:93:20" + "src": "18483:93:31" }, { "expression": { "arguments": [ { "hexValue": "3132", - "id": 29823, + "id": 34043, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18819:8:20", + "src": "18620:8:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_7257600_by_1", @@ -31965,18 +32252,18 @@ "typeString": "int_const 7257600" } ], - "id": 29822, + "id": 34042, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "18814:4:20", + "referencedDeclaration": 4833, + "src": "18615:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29824, + "id": 34044, "isConstant": false, "isLValue": false, "isPure": false, @@ -31985,16 +32272,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18814:14:20", + "src": "18615:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29825, + "id": 34045, "nodeType": "ExpressionStatement", - "src": "18814:14:20" + "src": "18615:14:31" }, { "expression": { @@ -32004,14 +32291,14 @@ { "arguments": [ { - "id": 29831, + "id": 34051, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "18909:7:20", + "referencedDeclaration": 32093, + "src": "18710:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -32019,30 +32306,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29830, + "id": 34050, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "18901:7:20", + "src": "18702:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29829, + "id": 34049, "name": "address", "nodeType": "ElementaryTypeName", - "src": "18901:7:20", + "src": "18702:7:31", "typeDescriptions": {} } }, - "id": 29832, + "id": 34052, "isConstant": false, "isLValue": false, "isPure": false, @@ -32051,7 +32338,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18901:16:20", + "src": "18702:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -32067,33 +32354,33 @@ } ], "expression": { - "id": 29827, + "id": 34047, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "18887:3:20", + "referencedDeclaration": 31571, + "src": "18688:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29828, + "id": 34048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "18891:9:20", + "memberLocation": "18692:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "18887:13:20", + "referencedDeclaration": 30378, + "src": "18688:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29833, + "id": 34053, "isConstant": false, "isLValue": false, "isPure": false, @@ -32102,7 +32389,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18887:31:20", + "src": "18688:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -32117,18 +32404,18 @@ "typeString": "bool" } ], - "id": 29826, + "id": 34046, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "18880:6:20", + "src": "18681:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29834, + "id": 34054, "isConstant": false, "isLValue": false, "isPure": false, @@ -32137,16 +32424,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18880:39:20", + "src": "18681:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29835, + "id": 34055, "nodeType": "ExpressionStatement", - "src": "18880:39:20" + "src": "18681:39:31" }, { "expression": { @@ -32156,14 +32443,14 @@ { "arguments": [ { - "id": 29845, + "id": 34065, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "19019:3:20", + "referencedDeclaration": 31571, + "src": "18820:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -32171,30 +32458,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29844, + "id": 34064, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19011:7:20", + "src": "18812:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29843, + "id": 34063, "name": "address", "nodeType": "ElementaryTypeName", - "src": "19011:7:20", + "src": "18812:7:31", "typeDescriptions": {} } }, - "id": 29846, + "id": 34066, "isConstant": false, "isLValue": false, "isPure": false, @@ -32203,7 +32490,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19011:12:20", + "src": "18812:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -32225,33 +32512,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29838, + "id": 34058, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "18979:7:20", + "referencedDeclaration": 32093, + "src": "18780:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29839, + "id": 34059, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "18987:10:20", + "memberLocation": "18788:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "18979:18:20", + "referencedDeclaration": 27505, + "src": "18780:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29840, + "id": 34060, "isConstant": false, "isLValue": false, "isPure": false, @@ -32260,7 +32547,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18979:20:20", + "src": "18780:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -32275,18 +32562,18 @@ "typeString": "address" } ], - "id": 29837, + "id": 34057, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "18972:6:20", + "referencedDeclaration": 29158, + "src": "18773:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29841, + "id": 34061, "isConstant": false, "isLValue": false, "isPure": false, @@ -32295,29 +32582,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18972:28:20", + "src": "18773:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29842, + "id": 34062, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "19001:9:20", + "memberLocation": "18802:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "18972:38:20", + "referencedDeclaration": 29097, + "src": "18773:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29847, + "id": 34067, "isConstant": false, "isLValue": false, "isPure": false, @@ -32326,7 +32613,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18972:52:20", + "src": "18773:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -32338,7 +32625,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29852, + "id": 34072, "isConstant": false, "isLValue": false, "isPure": false, @@ -32348,18 +32635,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29850, + "id": 34070, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29848, + "id": 34068, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29655, - "src": "19026:7:20", + "referencedDeclaration": 33873, + "src": "18827:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32369,21 +32656,21 @@ "operator": "*", "rightExpression": { "hexValue": "3532", - "id": 29849, + "id": 34069, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19036:2:20", + "src": "18837:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_52_by_1", "typeString": "int_const 52" }, "value": "52" }, - "src": "19026:12:20", + "src": "18827:12:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32393,21 +32680,21 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 29851, + "id": 34071, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19041:3:20", + "src": "18842:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "19026:18:20", + "src": "18827:18:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32415,14 +32702,14 @@ }, { "hexValue": "31", - "id": 29853, + "id": 34073, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19046:7:20", + "src": "18847:7:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -32446,18 +32733,18 @@ "typeString": "int_const 1000000000000000000" } ], - "id": 29836, + "id": 34056, "name": "withinDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27818, - "src": "18961:10:20", + "referencedDeclaration": 32022, + "src": "18762:10:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256)" } }, - "id": 29854, + "id": 34074, "isConstant": false, "isLValue": false, "isPure": false, @@ -32466,30 +32753,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "18961:93:20", + "src": "18762:93:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29855, + "id": 34075, "nodeType": "ExpressionStatement", - "src": "18961:93:20" + "src": "18762:93:31" }, { "expression": { "arguments": [ { "hexValue": "3234", - "id": 29857, + "id": 34077, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19098:8:20", + "src": "18899:8:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_14515200_by_1", @@ -32505,18 +32792,18 @@ "typeString": "int_const 14515200" } ], - "id": 29856, + "id": 34076, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "19093:4:20", + "referencedDeclaration": 4833, + "src": "18894:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29858, + "id": 34078, "isConstant": false, "isLValue": false, "isPure": false, @@ -32525,16 +32812,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19093:14:20", + "src": "18894:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29859, + "id": 34079, "nodeType": "ExpressionStatement", - "src": "19093:14:20" + "src": "18894:14:31" }, { "expression": { @@ -32544,14 +32831,14 @@ { "arguments": [ { - "id": 29865, + "id": 34085, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "19188:7:20", + "referencedDeclaration": 32093, + "src": "18989:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -32559,30 +32846,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29864, + "id": 34084, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19180:7:20", + "src": "18981:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29863, + "id": 34083, "name": "address", "nodeType": "ElementaryTypeName", - "src": "19180:7:20", + "src": "18981:7:31", "typeDescriptions": {} } }, - "id": 29866, + "id": 34086, "isConstant": false, "isLValue": false, "isPure": false, @@ -32591,7 +32878,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19180:16:20", + "src": "18981:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -32607,33 +32894,33 @@ } ], "expression": { - "id": 29861, + "id": 34081, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "19166:3:20", + "referencedDeclaration": 31571, + "src": "18967:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29862, + "id": 34082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "19170:9:20", + "memberLocation": "18971:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "19166:13:20", + "referencedDeclaration": 30378, + "src": "18967:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29867, + "id": 34087, "isConstant": false, "isLValue": false, "isPure": false, @@ -32642,7 +32929,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19166:31:20", + "src": "18967:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -32657,18 +32944,18 @@ "typeString": "bool" } ], - "id": 29860, + "id": 34080, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "19159:6:20", + "src": "18960:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29868, + "id": 34088, "isConstant": false, "isLValue": false, "isPure": false, @@ -32677,16 +32964,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19159:39:20", + "src": "18960:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29869, + "id": 34089, "nodeType": "ExpressionStatement", - "src": "19159:39:20" + "src": "18960:39:31" }, { "expression": { @@ -32696,14 +32983,14 @@ { "arguments": [ { - "id": 29879, + "id": 34099, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "19296:3:20", + "referencedDeclaration": 31571, + "src": "19097:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -32711,30 +32998,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29878, + "id": 34098, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19288:7:20", + "src": "19089:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29877, + "id": 34097, "name": "address", "nodeType": "ElementaryTypeName", - "src": "19288:7:20", + "src": "19089:7:31", "typeDescriptions": {} } }, - "id": 29880, + "id": 34100, "isConstant": false, "isLValue": false, "isPure": false, @@ -32743,7 +33030,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19288:12:20", + "src": "19089:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -32765,33 +33052,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29872, + "id": 34092, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "19256:7:20", + "referencedDeclaration": 32093, + "src": "19057:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29873, + "id": 34093, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "19264:10:20", + "memberLocation": "19065:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "19256:18:20", + "referencedDeclaration": 27505, + "src": "19057:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29874, + "id": 34094, "isConstant": false, "isLValue": false, "isPure": false, @@ -32800,7 +33087,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19256:20:20", + "src": "19057:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -32815,18 +33102,18 @@ "typeString": "address" } ], - "id": 29871, + "id": 34091, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "19249:6:20", + "referencedDeclaration": 29158, + "src": "19050:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29875, + "id": 34095, "isConstant": false, "isLValue": false, "isPure": false, @@ -32835,29 +33122,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19249:28:20", + "src": "19050:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29876, + "id": 34096, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "19278:9:20", + "memberLocation": "19079:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "19249:38:20", + "referencedDeclaration": 29097, + "src": "19050:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29881, + "id": 34101, "isConstant": false, "isLValue": false, "isPure": false, @@ -32866,7 +33153,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19249:52:20", + "src": "19050:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -32874,12 +33161,12 @@ } }, { - "id": 29882, + "id": 34102, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29655, - "src": "19303:7:20", + "referencedDeclaration": 33873, + "src": "19104:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32897,20 +33184,20 @@ "typeString": "uint256" } ], - "id": 29870, + "id": 34090, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -32923,13 +33210,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "19240:8:20", + "src": "19041:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 29883, + "id": 34103, "isConstant": false, "isLValue": false, "isPure": false, @@ -32938,16 +33225,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19240:71:20", + "src": "19041:71:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29884, + "id": 34104, "nodeType": "ExpressionStatement", - "src": "19240:71:20" + "src": "19041:71:31" }, { "expression": { @@ -32955,33 +33242,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29885, + "id": 34105, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, - "src": "19324:2:20", + "src": "19125:2:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vm_$9315", + "typeIdentifier": "t_contract$_Vm_$9352", "typeString": "contract Vm" } }, - "id": 29887, + "id": 34107, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "19327:9:20", + "memberLocation": "19128:9:31", "memberName": "stopPrank", "nodeType": "MemberAccess", - "referencedDeclaration": 9060, - "src": "19324:12:20", + "referencedDeclaration": 9097, + "src": "19125:12:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, - "id": 29888, + "id": 34108, "isConstant": false, "isLValue": false, "isPure": false, @@ -32990,23 +33277,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19324:14:20", + "src": "19125:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29889, + "id": 34109, "nodeType": "ExpressionStatement", - "src": "19324:14:20" + "src": "19125:14:31" } ] }, "documentation": { - "id": 29653, + "id": 33871, "nodeType": "StructuredDocumentation", - "src": "17281:53:20", + "src": "17104:53:31", "text": "@dev Verifies claim() state changes using fuzzing" }, "functionSelector": "8c852881", @@ -33014,20 +33301,20 @@ "kind": "function", "modifiers": [], "name": "test_vesting_claim_fuzzing1", - "nameLocation": "17349:27:20", + "nameLocation": "17172:27:31", "parameters": { - "id": 29656, + "id": 33874, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 29655, + "id": 33873, "mutability": "mutable", "name": "_amount", - "nameLocation": "17385:7:20", + "nameLocation": "17208:7:31", "nodeType": "VariableDeclaration", - "scope": 29891, - "src": "17377:15:20", + "scope": 34111, + "src": "17200:15:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33035,10 +33322,10 @@ "typeString": "uint256" }, "typeName": { - "id": 29654, + "id": 33872, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "17377:7:20", + "src": "17200:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33047,44 +33334,44 @@ "visibility": "internal" } ], - "src": "17376:17:20" + "src": "17199:17:31" }, "returnParameters": { - "id": 29657, + "id": 33875, "nodeType": "ParameterList", "parameters": [], - "src": "17401:0:20" + "src": "17224:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 30100, + "id": 34322, "nodeType": "FunctionDefinition", - "src": "19410:2115:20", + "src": "19211:2093:31", "nodes": [], "body": { - "id": 30099, + "id": 34321, "nodeType": "Block", - "src": "19471:2054:20", + "src": "19272:2032:31", "nodes": [], "statements": [ { "expression": { - "id": 29903, + "id": 34123, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 29897, + "id": 34117, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29894, - "src": "19482:7:20", + "referencedDeclaration": 34114, + "src": "19283:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33095,12 +33382,12 @@ "rightHandSide": { "arguments": [ { - "id": 29899, + "id": 34119, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29894, - "src": "19498:7:20", + "referencedDeclaration": 34114, + "src": "19299:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33108,14 +33395,14 @@ }, { "hexValue": "3130305f303030", - "id": 29900, + "id": 34120, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19507:13:20", + "src": "19308:13:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_100000000000000000000000_by_1", @@ -33125,14 +33412,14 @@ }, { "hexValue": "3130305f3030305f303030", - "id": 29901, + "id": 34121, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19522:17:20", + "src": "19323:17:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_100000000000000000000000000_by_1", @@ -33156,21 +33443,21 @@ "typeString": "int_const 100000000000000000000000000" } ], - "id": 29898, + "id": 34118, "name": "bound", "nodeType": "Identifier", "overloadedDeclarations": [ - 7670, - 7800 + 7707, + 7837 ], - "referencedDeclaration": 7670, - "src": "19492:5:20", + "referencedDeclaration": 7707, + "src": "19293:5:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) view returns (uint256)" } }, - "id": 29902, + "id": 34122, "isConstant": false, "isLValue": false, "isPure": false, @@ -33179,53 +33466,84 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19492:48:20", + "src": "19293:48:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "19482:58:20", + "src": "19283:58:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 29904, + "id": 34124, "nodeType": "ExpressionStatement", - "src": "19482:58:20" + "src": "19283:58:31" }, { "expression": { "arguments": [ { - "hexValue": "307863303065393443623636324333353230323832453666353731373231343030344137663236383838", - "id": 29906, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 34126, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32093, + "src": "19418:7:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vesting_$28096", + "typeString": "contract Vesting" + } + }, + "id": 34127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19426:10:31", + "memberName": "proveToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 27505, + "src": "19418:18:31", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 34128, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "19617:42:20", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19418:20:31", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "value": "0xc00e94Cb662C3520282E6f5717214004A7f26888" + } }, { "arguments": [ { - "id": 29909, + "id": 34131, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "19669:7:20", + "referencedDeclaration": 32093, + "src": "19448:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -33233,30 +33551,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29908, + "id": 34130, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19661:7:20", + "src": "19440:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29907, + "id": 34129, "name": "address", "nodeType": "ElementaryTypeName", - "src": "19661:7:20", + "src": "19440:7:31", "typeDescriptions": {} } }, - "id": 29910, + "id": 34132, "isConstant": false, "isLValue": false, "isPure": false, @@ -33265,7 +33583,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19661:16:20", + "src": "19440:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -33277,18 +33595,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29913, + "id": 34135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29911, + "id": 34133, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29894, - "src": "19679:7:20", + "referencedDeclaration": 34114, + "src": "19458:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33298,21 +33616,21 @@ "operator": "*", "rightExpression": { "hexValue": "33", - "id": 29912, + "id": 34134, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19689:1:20", + "src": "19468:1:31", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, - "src": "19679:11:20", + "src": "19458:11:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33334,22 +33652,22 @@ "typeString": "uint256" } ], - "id": 29905, + "id": 34125, "name": "deal", "nodeType": "Identifier", "overloadedDeclarations": [ - 5023, - 5040, - 5143 + 5060, + 5077, + 5180 ], - "referencedDeclaration": 5040, - "src": "19612:4:20", + "referencedDeclaration": 5077, + "src": "19413:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 29914, + "id": 34136, "isConstant": false, "isLValue": false, "isPure": false, @@ -33358,16 +33676,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19612:79:20", + "src": "19413:57:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29915, + "id": 34137, "nodeType": "ExpressionStatement", - "src": "19612:79:20" + "src": "19413:57:31" }, { "expression": { @@ -33377,14 +33695,14 @@ { "arguments": [ { - "id": 29921, + "id": 34143, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "19767:7:20", + "referencedDeclaration": 32093, + "src": "19546:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -33392,30 +33710,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29920, + "id": 34142, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19759:7:20", + "src": "19538:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29919, + "id": 34141, "name": "address", "nodeType": "ElementaryTypeName", - "src": "19759:7:20", + "src": "19538:7:31", "typeDescriptions": {} } }, - "id": 29922, + "id": 34144, "isConstant": false, "isLValue": false, "isPure": false, @@ -33424,7 +33742,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19759:16:20", + "src": "19538:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -33440,33 +33758,33 @@ } ], "expression": { - "id": 29917, + "id": 34139, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "19737:3:20", + "referencedDeclaration": 31568, + "src": "19516:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29918, + "id": 34140, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "19741:17:20", + "memberLocation": "19520:17:31", "memberName": "try_enableVesting", "nodeType": "MemberAccess", - "referencedDeclaration": 27182, - "src": "19737:21:20", + "referencedDeclaration": 30232, + "src": "19516:21:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29923, + "id": 34145, "isConstant": false, "isLValue": false, "isPure": false, @@ -33475,7 +33793,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19737:39:20", + "src": "19516:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -33490,18 +33808,18 @@ "typeString": "bool" } ], - "id": 29916, + "id": 34138, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "19730:6:20", + "src": "19509:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29924, + "id": 34146, "isConstant": false, "isLValue": false, "isPure": false, @@ -33510,16 +33828,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19730:47:20", + "src": "19509:47:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29925, + "id": 34147, "nodeType": "ExpressionStatement", - "src": "19730:47:20" + "src": "19509:47:31" }, { "expression": { @@ -33529,14 +33847,14 @@ { "arguments": [ { - "id": 29931, + "id": 34153, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "19914:7:20", + "referencedDeclaration": 32093, + "src": "19693:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -33544,30 +33862,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29930, + "id": 34152, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19906:7:20", + "src": "19685:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29929, + "id": 34151, "name": "address", "nodeType": "ElementaryTypeName", - "src": "19906:7:20", + "src": "19685:7:31", "typeDescriptions": {} } }, - "id": 29932, + "id": 34154, "isConstant": false, "isLValue": false, "isPure": false, @@ -33576,7 +33894,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19906:16:20", + "src": "19685:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -33586,14 +33904,14 @@ { "arguments": [ { - "id": 29935, + "id": 34157, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "19932:3:20", + "referencedDeclaration": 31571, + "src": "19711:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -33601,30 +33919,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29934, + "id": 34156, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19924:7:20", + "src": "19703:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29933, + "id": 34155, "name": "address", "nodeType": "ElementaryTypeName", - "src": "19924:7:20", + "src": "19703:7:31", "typeDescriptions": {} } }, - "id": 29936, + "id": 34158, "isConstant": false, "isLValue": false, "isPure": false, @@ -33633,7 +33951,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19924:12:20", + "src": "19703:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -33641,12 +33959,12 @@ } }, { - "id": 29937, + "id": 34159, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29894, - "src": "19938:7:20", + "referencedDeclaration": 34114, + "src": "19717:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33669,33 +33987,33 @@ } ], "expression": { - "id": 29927, + "id": 34149, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "19886:3:20", + "referencedDeclaration": 31568, + "src": "19665:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29928, + "id": 34150, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "19890:15:20", + "memberLocation": "19669:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "19886:19:20", + "referencedDeclaration": 30294, + "src": "19665:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 29938, + "id": 34160, "isConstant": false, "isLValue": false, "isPure": false, @@ -33704,7 +34022,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19886:60:20", + "src": "19665:60:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -33719,18 +34037,18 @@ "typeString": "bool" } ], - "id": 29926, + "id": 34148, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "19879:6:20", + "src": "19658:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29939, + "id": 34161, "isConstant": false, "isLValue": false, "isPure": false, @@ -33739,16 +34057,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19879:68:20", + "src": "19658:68:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29940, + "id": 34162, "nodeType": "ExpressionStatement", - "src": "19879:68:20" + "src": "19658:68:31" }, { "expression": { @@ -33758,14 +34076,14 @@ { "arguments": [ { - "id": 29946, + "id": 34168, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "20027:7:20", + "referencedDeclaration": 32093, + "src": "19806:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -33773,30 +34091,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29945, + "id": 34167, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20019:7:20", + "src": "19798:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29944, + "id": 34166, "name": "address", "nodeType": "ElementaryTypeName", - "src": "20019:7:20", + "src": "19798:7:31", "typeDescriptions": {} } }, - "id": 29947, + "id": 34169, "isConstant": false, "isLValue": false, "isPure": false, @@ -33805,7 +34123,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20019:16:20", + "src": "19798:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -33815,14 +34133,14 @@ { "arguments": [ { - "id": 29950, + "id": 34172, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "20045:3:20", + "referencedDeclaration": 31565, + "src": "19824:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -33830,30 +34148,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29949, + "id": 34171, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20037:7:20", + "src": "19816:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29948, + "id": 34170, "name": "address", "nodeType": "ElementaryTypeName", - "src": "20037:7:20", + "src": "19816:7:31", "typeDescriptions": {} } }, - "id": 29951, + "id": 34173, "isConstant": false, "isLValue": false, "isPure": false, @@ -33862,7 +34180,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20037:12:20", + "src": "19816:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -33870,12 +34188,12 @@ } }, { - "id": 29952, + "id": 34174, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29894, - "src": "20051:7:20", + "referencedDeclaration": 34114, + "src": "19830:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33898,33 +34216,33 @@ } ], "expression": { - "id": 29942, + "id": 34164, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "19999:3:20", + "referencedDeclaration": 31568, + "src": "19778:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29943, + "id": 34165, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20003:15:20", + "memberLocation": "19782:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "19999:19:20", + "referencedDeclaration": 30294, + "src": "19778:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 29953, + "id": 34175, "isConstant": false, "isLValue": false, "isPure": false, @@ -33933,7 +34251,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19999:60:20", + "src": "19778:60:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -33948,18 +34266,18 @@ "typeString": "bool" } ], - "id": 29941, + "id": 34163, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "19992:6:20", + "src": "19771:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29954, + "id": 34176, "isConstant": false, "isLValue": false, "isPure": false, @@ -33968,16 +34286,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19992:68:20", + "src": "19771:68:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29955, + "id": 34177, "nodeType": "ExpressionStatement", - "src": "19992:68:20" + "src": "19771:68:31" }, { "expression": { @@ -33987,14 +34305,14 @@ { "arguments": [ { - "id": 29961, + "id": 34183, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "20140:7:20", + "referencedDeclaration": 32093, + "src": "19919:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -34002,30 +34320,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29960, + "id": 34182, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20132:7:20", + "src": "19911:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29959, + "id": 34181, "name": "address", "nodeType": "ElementaryTypeName", - "src": "20132:7:20", + "src": "19911:7:31", "typeDescriptions": {} } }, - "id": 29962, + "id": 34184, "isConstant": false, "isLValue": false, "isPure": false, @@ -34034,7 +34352,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20132:16:20", + "src": "19911:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -34044,14 +34362,14 @@ { "arguments": [ { - "id": 29965, + "id": 34187, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "20158:3:20", + "referencedDeclaration": 31568, + "src": "19937:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -34059,30 +34377,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29964, + "id": 34186, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20150:7:20", + "src": "19929:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29963, + "id": 34185, "name": "address", "nodeType": "ElementaryTypeName", - "src": "20150:7:20", + "src": "19929:7:31", "typeDescriptions": {} } }, - "id": 29966, + "id": 34188, "isConstant": false, "isLValue": false, "isPure": false, @@ -34091,7 +34409,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20150:12:20", + "src": "19929:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -34099,12 +34417,12 @@ } }, { - "id": 29967, + "id": 34189, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29894, - "src": "20164:7:20", + "referencedDeclaration": 34114, + "src": "19943:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34127,33 +34445,33 @@ } ], "expression": { - "id": 29957, + "id": 34179, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "20112:3:20", + "referencedDeclaration": 31568, + "src": "19891:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29958, + "id": 34180, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20116:15:20", + "memberLocation": "19895:15:31", "memberName": "try_addInvestor", "nodeType": "MemberAccess", - "referencedDeclaration": 27244, - "src": "20112:19:20", + "referencedDeclaration": 30294, + "src": "19891:19:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 29968, + "id": 34190, "isConstant": false, "isLValue": false, "isPure": false, @@ -34162,7 +34480,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20112:60:20", + "src": "19891:60:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -34177,18 +34495,18 @@ "typeString": "bool" } ], - "id": 29956, + "id": 34178, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "20105:6:20", + "src": "19884:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29969, + "id": 34191, "isConstant": false, "isLValue": false, "isPure": false, @@ -34197,30 +34515,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20105:68:20", + "src": "19884:68:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29970, + "id": 34192, "nodeType": "ExpressionStatement", - "src": "20105:68:20" + "src": "19884:68:31" }, { "expression": { "arguments": [ { "hexValue": "32", - "id": 29972, + "id": 34194, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20253:7:20", + "src": "20032:7:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_1209600_by_1", @@ -34236,18 +34554,18 @@ "typeString": "int_const 1209600" } ], - "id": 29971, + "id": 34193, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "20248:4:20", + "referencedDeclaration": 4833, + "src": "20027:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 29973, + "id": 34195, "isConstant": false, "isLValue": false, "isPure": false, @@ -34256,16 +34574,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20248:13:20", + "src": "20027:13:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29974, + "id": 34196, "nodeType": "ExpressionStatement", - "src": "20248:13:20" + "src": "20027:13:31" }, { "expression": { @@ -34275,14 +34593,14 @@ { "arguments": [ { - "id": 29980, + "id": 34202, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "20301:7:20", + "referencedDeclaration": 32093, + "src": "20080:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -34290,30 +34608,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 29979, + "id": 34201, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20293:7:20", + "src": "20072:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29978, + "id": 34200, "name": "address", "nodeType": "ElementaryTypeName", - "src": "20293:7:20", + "src": "20072:7:31", "typeDescriptions": {} } }, - "id": 29981, + "id": 34203, "isConstant": false, "isLValue": false, "isPure": false, @@ -34322,7 +34640,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20293:16:20", + "src": "20072:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -34338,33 +34656,33 @@ } ], "expression": { - "id": 29976, + "id": 34198, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "20279:3:20", + "referencedDeclaration": 31571, + "src": "20058:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 29977, + "id": 34199, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20283:9:20", + "memberLocation": "20062:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "20279:13:20", + "referencedDeclaration": 30378, + "src": "20058:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 29982, + "id": 34204, "isConstant": false, "isLValue": false, "isPure": false, @@ -34373,7 +34691,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20279:31:20", + "src": "20058:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -34388,18 +34706,18 @@ "typeString": "bool" } ], - "id": 29975, + "id": 34197, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "20272:6:20", + "src": "20051:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 29983, + "id": 34205, "isConstant": false, "isLValue": false, "isPure": false, @@ -34408,16 +34726,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20272:39:20", + "src": "20051:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 29984, + "id": 34206, "nodeType": "ExpressionStatement", - "src": "20272:39:20" + "src": "20051:39:31" }, { "expression": { @@ -34427,14 +34745,14 @@ { "arguments": [ { - "id": 29994, + "id": 34216, "name": "jon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27370, - "src": "20446:3:20", + "referencedDeclaration": 31571, + "src": "20225:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -34442,30 +34760,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 29993, + "id": 34215, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20438:7:20", + "src": "20217:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 29992, + "id": 34214, "name": "address", "nodeType": "ElementaryTypeName", - "src": "20438:7:20", + "src": "20217:7:31", "typeDescriptions": {} } }, - "id": 29995, + "id": 34217, "isConstant": false, "isLValue": false, "isPure": false, @@ -34474,7 +34792,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20438:12:20", + "src": "20217:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -34496,33 +34814,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 29987, + "id": 34209, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "20406:7:20", + "referencedDeclaration": 32093, + "src": "20185:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 29988, + "id": 34210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20414:10:20", + "memberLocation": "20193:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "20406:18:20", + "referencedDeclaration": 27505, + "src": "20185:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 29989, + "id": 34211, "isConstant": false, "isLValue": false, "isPure": false, @@ -34531,7 +34849,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20406:20:20", + "src": "20185:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -34546,18 +34864,18 @@ "typeString": "address" } ], - "id": 29986, + "id": 34208, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "20399:6:20", + "referencedDeclaration": 29158, + "src": "20178:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 29990, + "id": 34212, "isConstant": false, "isLValue": false, "isPure": false, @@ -34566,29 +34884,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20399:28:20", + "src": "20178:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 29991, + "id": 34213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20428:9:20", + "memberLocation": "20207:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "20399:38:20", + "referencedDeclaration": 29097, + "src": "20178:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 29996, + "id": 34218, "isConstant": false, "isLValue": false, "isPure": false, @@ -34597,7 +34915,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20399:52:20", + "src": "20178:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -34611,7 +34929,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 30001, + "id": 34223, "isConstant": false, "isLValue": false, "isPure": false, @@ -34621,18 +34939,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 29999, + "id": 34221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 29997, + "id": 34219, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29894, - "src": "20454:7:20", + "referencedDeclaration": 34114, + "src": "20233:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34642,21 +34960,21 @@ "operator": "*", "rightExpression": { "hexValue": "3132", - "id": 29998, + "id": 34220, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20464:2:20", + "src": "20243:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", "typeString": "int_const 12" }, "value": "12" }, - "src": "20454:12:20", + "src": "20233:12:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34666,35 +34984,35 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 30000, + "id": 34222, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20469:3:20", + "src": "20248:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "20454:18:20", + "src": "20233:18:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 30002, + "id": 34224, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "20453:20:20", + "src": "20232:20:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34702,14 +35020,14 @@ }, { "hexValue": "31", - "id": 30003, + "id": 34225, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20475:7:20", + "src": "20254:7:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -34733,18 +35051,18 @@ "typeString": "int_const 1000000000000000000" } ], - "id": 29985, + "id": 34207, "name": "withinDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27818, - "src": "20388:10:20", + "referencedDeclaration": 32022, + "src": "20167:10:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256)" } }, - "id": 30004, + "id": 34226, "isConstant": false, "isLValue": false, "isPure": false, @@ -34753,30 +35071,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20388:95:20", + "src": "20167:95:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30005, + "id": 34227, "nodeType": "ExpressionStatement", - "src": "20388:95:20" + "src": "20167:95:31" }, { "expression": { "arguments": [ { "hexValue": "3232", - "id": 30007, + "id": 34229, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20553:8:20", + "src": "20332:8:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_13305600_by_1", @@ -34792,18 +35110,18 @@ "typeString": "int_const 13305600" } ], - "id": 30006, + "id": 34228, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "20548:4:20", + "referencedDeclaration": 4833, + "src": "20327:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 30008, + "id": 34230, "isConstant": false, "isLValue": false, "isPure": false, @@ -34812,16 +35130,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20548:14:20", + "src": "20327:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30009, + "id": 34231, "nodeType": "ExpressionStatement", - "src": "20548:14:20" + "src": "20327:14:31" }, { "expression": { @@ -34831,14 +35149,14 @@ { "arguments": [ { - "id": 30015, + "id": 34237, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "20656:7:20", + "referencedDeclaration": 32093, + "src": "20435:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -34846,30 +35164,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 30014, + "id": 34236, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20648:7:20", + "src": "20427:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 30013, + "id": 34235, "name": "address", "nodeType": "ElementaryTypeName", - "src": "20648:7:20", + "src": "20427:7:31", "typeDescriptions": {} } }, - "id": 30016, + "id": 34238, "isConstant": false, "isLValue": false, "isPure": false, @@ -34878,7 +35196,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20648:16:20", + "src": "20427:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -34894,33 +35212,33 @@ } ], "expression": { - "id": 30011, + "id": 34233, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "20634:3:20", + "referencedDeclaration": 31565, + "src": "20413:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 30012, + "id": 34234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20638:9:20", + "memberLocation": "20417:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "20634:13:20", + "referencedDeclaration": 30378, + "src": "20413:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 30017, + "id": 34239, "isConstant": false, "isLValue": false, "isPure": false, @@ -34929,7 +35247,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20634:31:20", + "src": "20413:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -34944,18 +35262,18 @@ "typeString": "bool" } ], - "id": 30010, + "id": 34232, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "20627:6:20", + "src": "20406:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 30018, + "id": 34240, "isConstant": false, "isLValue": false, "isPure": false, @@ -34964,16 +35282,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20627:39:20", + "src": "20406:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30019, + "id": 34241, "nodeType": "ExpressionStatement", - "src": "20627:39:20" + "src": "20406:39:31" }, { "expression": { @@ -34983,14 +35301,14 @@ { "arguments": [ { - "id": 30029, + "id": 34251, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "20801:3:20", + "referencedDeclaration": 31565, + "src": "20580:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -34998,30 +35316,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 30028, + "id": 34250, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20793:7:20", + "src": "20572:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 30027, + "id": 34249, "name": "address", "nodeType": "ElementaryTypeName", - "src": "20793:7:20", + "src": "20572:7:31", "typeDescriptions": {} } }, - "id": 30030, + "id": 34252, "isConstant": false, "isLValue": false, "isPure": false, @@ -35030,7 +35348,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20793:12:20", + "src": "20572:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -35052,33 +35370,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 30022, + "id": 34244, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "20761:7:20", + "referencedDeclaration": 32093, + "src": "20540:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 30023, + "id": 34245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20769:10:20", + "memberLocation": "20548:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "20761:18:20", + "referencedDeclaration": 27505, + "src": "20540:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 30024, + "id": 34246, "isConstant": false, "isLValue": false, "isPure": false, @@ -35087,7 +35405,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20761:20:20", + "src": "20540:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -35102,18 +35420,18 @@ "typeString": "address" } ], - "id": 30021, + "id": 34243, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "20754:6:20", + "referencedDeclaration": 29158, + "src": "20533:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 30025, + "id": 34247, "isConstant": false, "isLValue": false, "isPure": false, @@ -35122,29 +35440,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20754:28:20", + "src": "20533:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 30026, + "id": 34248, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20783:9:20", + "memberLocation": "20562:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "20754:38:20", + "referencedDeclaration": 29097, + "src": "20533:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 30031, + "id": 34253, "isConstant": false, "isLValue": false, "isPure": false, @@ -35153,7 +35471,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20754:52:20", + "src": "20533:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -35167,7 +35485,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 30036, + "id": 34258, "isConstant": false, "isLValue": false, "isPure": false, @@ -35177,18 +35495,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 30034, + "id": 34256, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 30032, + "id": 34254, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29894, - "src": "20809:7:20", + "referencedDeclaration": 34114, + "src": "20588:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35198,21 +35516,21 @@ "operator": "*", "rightExpression": { "hexValue": "3630", - "id": 30033, + "id": 34255, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20819:2:20", + "src": "20598:2:31", "typeDescriptions": { "typeIdentifier": "t_rational_60_by_1", "typeString": "int_const 60" }, "value": "60" }, - "src": "20809:12:20", + "src": "20588:12:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35222,35 +35540,35 @@ "operator": "/", "rightExpression": { "hexValue": "313030", - "id": 30035, + "id": 34257, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20824:3:20", + "src": "20603:3:31", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, - "src": "20809:18:20", + "src": "20588:18:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 30037, + "id": 34259, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "20808:20:20", + "src": "20587:20:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35258,14 +35576,14 @@ }, { "hexValue": "31", - "id": 30038, + "id": 34260, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20830:7:20", + "src": "20609:7:31", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -35289,18 +35607,18 @@ "typeString": "int_const 1000000000000000000" } ], - "id": 30020, + "id": 34242, "name": "withinDiff", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27818, - "src": "20743:10:20", + "referencedDeclaration": 32022, + "src": "20522:10:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256)" } }, - "id": 30039, + "id": 34261, "isConstant": false, "isLValue": false, "isPure": false, @@ -35309,30 +35627,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20743:95:20", + "src": "20522:95:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30040, + "id": 34262, "nodeType": "ExpressionStatement", - "src": "20743:95:20" + "src": "20522:95:31" }, { "expression": { "arguments": [ { "hexValue": "3230", - "id": 30042, + "id": 34264, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20909:8:20", + "src": "20688:8:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_12096000_by_1", @@ -35348,18 +35666,18 @@ "typeString": "int_const 12096000" } ], - "id": 30041, + "id": 34263, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "20904:4:20", + "referencedDeclaration": 4833, + "src": "20683:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 30043, + "id": 34265, "isConstant": false, "isLValue": false, "isPure": false, @@ -35368,16 +35686,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20904:14:20", + "src": "20683:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30044, + "id": 34266, "nodeType": "ExpressionStatement", - "src": "20904:14:20" + "src": "20683:14:31" }, { "expression": { @@ -35387,14 +35705,14 @@ { "arguments": [ { - "id": 30050, + "id": 34272, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "21038:7:20", + "referencedDeclaration": 32093, + "src": "20817:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -35402,30 +35720,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 30049, + "id": 34271, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "21030:7:20", + "src": "20809:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 30048, + "id": 34270, "name": "address", "nodeType": "ElementaryTypeName", - "src": "21030:7:20", + "src": "20809:7:31", "typeDescriptions": {} } }, - "id": 30051, + "id": 34273, "isConstant": false, "isLValue": false, "isPure": false, @@ -35434,7 +35752,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21030:16:20", + "src": "20809:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -35450,33 +35768,33 @@ } ], "expression": { - "id": 30046, + "id": 34268, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "21016:3:20", + "referencedDeclaration": 31565, + "src": "20795:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 30047, + "id": 34269, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "21020:9:20", + "memberLocation": "20799:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "21016:13:20", + "referencedDeclaration": 30378, + "src": "20795:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 30052, + "id": 34274, "isConstant": false, "isLValue": false, "isPure": false, @@ -35485,7 +35803,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21016:31:20", + "src": "20795:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -35500,18 +35818,18 @@ "typeString": "bool" } ], - "id": 30045, + "id": 34267, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "21009:6:20", + "src": "20788:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 30053, + "id": 34275, "isConstant": false, "isLValue": false, "isPure": false, @@ -35520,16 +35838,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21009:39:20", + "src": "20788:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30054, + "id": 34276, "nodeType": "ExpressionStatement", - "src": "21009:39:20" + "src": "20788:39:31" }, { "expression": { @@ -35539,14 +35857,14 @@ { "arguments": [ { - "id": 30064, + "id": 34286, "name": "joe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27364, - "src": "21170:3:20", + "referencedDeclaration": 31565, + "src": "20949:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -35554,30 +35872,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 30063, + "id": 34285, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "21162:7:20", + "src": "20941:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 30062, + "id": 34284, "name": "address", "nodeType": "ElementaryTypeName", - "src": "21162:7:20", + "src": "20941:7:31", "typeDescriptions": {} } }, - "id": 30065, + "id": 34287, "isConstant": false, "isLValue": false, "isPure": false, @@ -35586,7 +35904,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21162:12:20", + "src": "20941:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -35608,33 +35926,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 30057, + "id": 34279, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "21130:7:20", + "referencedDeclaration": 32093, + "src": "20909:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 30058, + "id": 34280, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "21138:10:20", + "memberLocation": "20917:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "21130:18:20", + "referencedDeclaration": 27505, + "src": "20909:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 30059, + "id": 34281, "isConstant": false, "isLValue": false, "isPure": false, @@ -35643,7 +35961,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21130:20:20", + "src": "20909:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -35658,18 +35976,18 @@ "typeString": "address" } ], - "id": 30056, + "id": 34278, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "21123:6:20", + "referencedDeclaration": 29158, + "src": "20902:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 30060, + "id": 34282, "isConstant": false, "isLValue": false, "isPure": false, @@ -35678,29 +35996,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21123:28:20", + "src": "20902:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 30061, + "id": 34283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "21152:9:20", + "memberLocation": "20931:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "21123:38:20", + "referencedDeclaration": 29097, + "src": "20902:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 30066, + "id": 34288, "isConstant": false, "isLValue": false, "isPure": false, @@ -35709,7 +36027,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21123:52:20", + "src": "20902:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -35717,12 +36035,12 @@ } }, { - "id": 30067, + "id": 34289, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29894, - "src": "21177:7:20", + "referencedDeclaration": 34114, + "src": "20956:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35740,20 +36058,20 @@ "typeString": "uint256" } ], - "id": 30055, + "id": 34277, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -35766,13 +36084,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "21114:8:20", + "src": "20893:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 30068, + "id": 34290, "isConstant": false, "isLValue": false, "isPure": false, @@ -35781,30 +36099,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21114:71:20", + "src": "20893:71:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30069, + "id": 34291, "nodeType": "ExpressionStatement", - "src": "21114:71:20" + "src": "20893:71:31" }, { "expression": { "arguments": [ { "hexValue": "3532", - "id": 30071, + "id": 34293, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "21235:8:20", + "src": "21014:8:31", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_31449600_by_1", @@ -35820,18 +36138,18 @@ "typeString": "int_const 31449600" } ], - "id": 30070, + "id": 34292, "name": "skip", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "21230:4:20", + "referencedDeclaration": 4833, + "src": "21009:4:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 30072, + "id": 34294, "isConstant": false, "isLValue": false, "isPure": false, @@ -35840,16 +36158,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21230:14:20", + "src": "21009:14:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30073, + "id": 34295, "nodeType": "ExpressionStatement", - "src": "21230:14:20" + "src": "21009:14:31" }, { "expression": { @@ -35859,14 +36177,14 @@ { "arguments": [ { - "id": 30079, + "id": 34301, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "21360:7:20", + "referencedDeclaration": 32093, + "src": "21139:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } } @@ -35874,30 +36192,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } ], - "id": 30078, + "id": 34300, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "21352:7:20", + "src": "21131:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 30077, + "id": 34299, "name": "address", "nodeType": "ElementaryTypeName", - "src": "21352:7:20", + "src": "21131:7:31", "typeDescriptions": {} } }, - "id": 30080, + "id": 34302, "isConstant": false, "isLValue": false, "isPure": false, @@ -35906,7 +36224,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21352:16:20", + "src": "21131:16:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -35922,33 +36240,33 @@ } ], "expression": { - "id": 30075, + "id": 34297, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "21338:3:20", + "referencedDeclaration": 31568, + "src": "21117:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } }, - "id": 30076, + "id": 34298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "21342:9:20", + "memberLocation": "21121:9:31", "memberName": "try_claim", "nodeType": "MemberAccess", - "referencedDeclaration": 27328, - "src": "21338:13:20", + "referencedDeclaration": 30378, + "src": "21117:13:31", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bool_$", "typeString": "function (address) external returns (bool)" } }, - "id": 30081, + "id": 34303, "isConstant": false, "isLValue": false, "isPure": false, @@ -35957,7 +36275,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21338:31:20", + "src": "21117:31:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -35972,18 +36290,18 @@ "typeString": "bool" } ], - "id": 30074, + "id": 34296, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "21331:6:20", + "src": "21110:6:31", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 30082, + "id": 34304, "isConstant": false, "isLValue": false, "isPure": false, @@ -35992,16 +36310,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21331:39:20", + "src": "21110:39:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30083, + "id": 34305, "nodeType": "ExpressionStatement", - "src": "21331:39:20" + "src": "21110:39:31" }, { "expression": { @@ -36011,14 +36329,14 @@ { "arguments": [ { - "id": 30093, + "id": 34315, "name": "dev", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27367, - "src": "21500:3:20", + "referencedDeclaration": 31568, + "src": "21279:3:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } } @@ -36026,30 +36344,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Actor_$27329", + "typeIdentifier": "t_contract$_Actor_$30379", "typeString": "contract Actor" } ], - "id": 30092, + "id": 34314, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "21492:7:20", + "src": "21271:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 30091, + "id": 34313, "name": "address", "nodeType": "ElementaryTypeName", - "src": "21492:7:20", + "src": "21271:7:31", "typeDescriptions": {} } }, - "id": 30094, + "id": 34316, "isConstant": false, "isLValue": false, "isPure": false, @@ -36058,7 +36376,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21492:12:20", + "src": "21271:12:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -36080,33 +36398,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 30086, + "id": 34308, "name": "vesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27889, - "src": "21460:7:20", + "referencedDeclaration": 32093, + "src": "21239:7:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_Vesting_$26061", + "typeIdentifier": "t_contract$_Vesting_$28096", "typeString": "contract Vesting" } }, - "id": 30087, + "id": 34309, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "21468:10:20", + "memberLocation": "21247:10:31", "memberName": "proveToken", "nodeType": "MemberAccess", - "referencedDeclaration": 25485, - "src": "21460:18:20", + "referencedDeclaration": 27505, + "src": "21239:18:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 30088, + "id": 34310, "isConstant": false, "isLValue": false, "isPure": false, @@ -36115,7 +36433,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21460:20:20", + "src": "21239:20:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -36130,18 +36448,18 @@ "typeString": "address" } ], - "id": 30085, + "id": 34307, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 26369, - "src": "21453:6:20", + "referencedDeclaration": 29158, + "src": "21232:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$26369_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$29158_$", "typeString": "type(contract IERC20)" } }, - "id": 30089, + "id": 34311, "isConstant": false, "isLValue": false, "isPure": false, @@ -36150,29 +36468,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21453:28:20", + "src": "21232:28:31", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$26369", + "typeIdentifier": "t_contract$_IERC20_$29158", "typeString": "contract IERC20" } }, - "id": 30090, + "id": 34312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "21482:9:20", + "memberLocation": "21261:9:31", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 26308, - "src": "21453:38:20", + "referencedDeclaration": 29097, + "src": "21232:38:31", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 30095, + "id": 34317, "isConstant": false, "isLValue": false, "isPure": false, @@ -36181,7 +36499,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21453:52:20", + "src": "21232:52:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -36189,12 +36507,12 @@ } }, { - "id": 30096, + "id": 34318, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29894, - "src": "21507:7:20", + "referencedDeclaration": 34114, + "src": "21286:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36212,20 +36530,20 @@ "typeString": "uint256" } ], - "id": 30084, + "id": 34306, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ - 1974, - 1999, - 2012, - 2028, - 2070, - 2112, - 2154, + 2011, + 2036, + 2049, + 2065, + 2107, + 2149, 2191, 2228, 2265, + 2302, 320, 345, 375, @@ -36238,13 +36556,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "21444:8:20", + "src": "21223:8:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 30097, + "id": 34319, "isConstant": false, "isLValue": false, "isPure": false, @@ -36253,23 +36571,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21444:71:20", + "src": "21223:71:31", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30098, + "id": 34320, "nodeType": "ExpressionStatement", - "src": "21444:71:20" + "src": "21223:71:31" } ] }, "documentation": { - "id": 29892, + "id": 34112, "nodeType": "StructuredDocumentation", - "src": "19354:50:20", + "src": "19155:50:31", "text": "@dev Verifies claim() edge cases using fuzzing" }, "functionSelector": "c375033d", @@ -36277,20 +36595,20 @@ "kind": "function", "modifiers": [], "name": "test_vesting_claim_fuzzing2", - "nameLocation": "19419:27:20", + "nameLocation": "19220:27:31", "parameters": { - "id": 29895, + "id": 34115, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 29894, + "id": 34114, "mutability": "mutable", "name": "_amount", - "nameLocation": "19455:7:20", + "nameLocation": "19256:7:31", "nodeType": "VariableDeclaration", - "scope": 30100, - "src": "19447:15:20", + "scope": 34322, + "src": "19248:15:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36298,10 +36616,10 @@ "typeString": "uint256" }, "typeName": { - "id": 29893, + "id": 34113, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "19447:7:20", + "src": "19248:7:31", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36310,15 +36628,15 @@ "visibility": "internal" } ], - "src": "19446:17:20" + "src": "19247:17:31" }, "returnParameters": { - "id": 29896, + "id": 34116, "nodeType": "ParameterList", "parameters": [], - "src": "19471:0:20" + "src": "19272:0:31" }, - "scope": 30101, + "scope": 34323, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" @@ -36328,62 +36646,62 @@ "baseContracts": [ { "baseName": { - "id": 27883, + "id": 32087, "name": "Utility", "nameLocations": [ - "207:7:20" + "232:7:31" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 27876, - "src": "207:7:20" + "referencedDeclaration": 32080, + "src": "232:7:31" }, - "id": 27884, + "id": 32088, "nodeType": "InheritanceSpecifier", - "src": "207:7:20" + "src": "232:7:31" }, { "baseName": { - "id": 27885, + "id": 32089, "name": "Test", "nameLocations": [ - "216:4:20" + "241:4:31" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 8158, - "src": "216:4:20" + "referencedDeclaration": 8195, + "src": "241:4:31" }, - "id": 27886, + "id": 32090, "nodeType": "InheritanceSpecifier", - "src": "216:4:20" + "src": "241:4:31" } ], "canonicalName": "VestingTest", "contractDependencies": [ - 26061, - 27329 + 28096, + 30379 ], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 30101, - 8158, + 34323, + 8195, 1843, 1840, - 8116, - 5144, - 4755, - 3207, - 2671, - 27876, + 8153, + 5181, + 4792, + 3244, + 2708, + 32080, 1786 ], "name": "VestingTest", - "nameLocation": "192:11:20", - "scope": 30102, + "nameLocation": "217:11:31", + "scope": 34324, "usedErrors": [] } ], "license": "UNLICENSED" }, - "id": 20 + "id": 31 } \ No newline at end of file diff --git a/out/test.sol/DSTest.json b/out/test.sol/DSTest.json index 39fcf0d..9c89afb 100644 --- a/out/test.sol/DSTest.json +++ b/out/test.sol/DSTest.json @@ -302,7 +302,7 @@ }, "deployedBytecode": { "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063ba414fa61461003b578063fa7626d414610057575b600080fd5b610043610064565b604051901515815260200160405180910390f35b6000546100439060ff1681565b60008054610100900460ff16156100845750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561018a5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b82840152825180830384018152606083019093526000929091610112917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016101bf565b60408051601f198184030181529082905261012c916101e3565b6000604051808303816000865af19150503d8060008114610169576040519150601f19603f3d011682016040523d82523d6000602084013e61016e565b606091505b509150508080602001905181019061018691906101f6565b9150505b919050565b6000815160005b818110156101b05760208185018101518683015201610196565b50600093019283525090919050565b6001600160e01b03198316815260006101db600483018461018f565b949350505050565b60006101ef828461018f565b9392505050565b60006020828403121561020857600080fd5b815180151581146101ef57600080fdfea26469706673582212204ee3101c9c12fe2d58575b126113957847d2e8350823f104b6f1697b3aa96f3a64736f6c63430008110033", - "sourceMap": "715:15435:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584;;;:::i;:::-;;;179:14:23;;172:22;154:41;;142:2;127:18;1819:584:0;;;;;;;1572:26;;;;;;;;;1819:584;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;2990:42;2978:55;3059:16;1980:374;;2196:43;;;1671:64;2196:43;;;380:51:23;;;-1:-1:-1;;;447:18:23;;;440:34;2196:43:0;;;;;;;;;353:18:23;;;2196:43:0;;;-1:-1:-1;;1671:64:0;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;485:322:23:-;526:3;564:5;558:12;588:1;598:128;612:6;609:1;606:13;598:128;;;709:4;694:13;;;690:24;;684:31;671:11;;;664:52;627:12;598:128;;;-1:-1:-1;781:1:23;745:16;;770:13;;;-1:-1:-1;745:16:23;;485:322;-1:-1:-1;485:322:23:o;812:278::-;-1:-1:-1;;;;;;997:33:23;;985:46;;967:3;1047:37;1081:1;1072:11;;1064:6;1047:37;:::i;:::-;1040:44;812:278;-1:-1:-1;;;;812:278:23:o;1095:189::-;1224:3;1249:29;1274:3;1266:6;1249:29;:::i;:::-;1242:36;1095:189;-1:-1:-1;;;1095:189:23:o;1289:277::-;1356:6;1409:2;1397:9;1388:7;1384:23;1380:32;1377:52;;;1425:1;1422;1415:12;1377:52;1457:9;1451:16;1510:5;1503:13;1496:21;1489:5;1486:32;1476:60;;1532:1;1529;1522:12", + "sourceMap": "715:15435:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584;;;:::i;:::-;;;179:14:32;;172:22;154:41;;142:2;127:18;1819:584:0;;;;;;;1572:26;;;;;;;;;1819:584;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;2990:42;2978:55;3059:16;1980:374;;2196:43;;;1671:64;2196:43;;;380:51:32;;;-1:-1:-1;;;447:18:32;;;440:34;2196:43:0;;;;;;;;;353:18:32;;;2196:43:0;;;-1:-1:-1;;1671:64:0;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;485:322:32:-;526:3;564:5;558:12;588:1;598:128;612:6;609:1;606:13;598:128;;;709:4;694:13;;;690:24;;684:31;671:11;;;664:52;627:12;598:128;;;-1:-1:-1;781:1:32;745:16;;770:13;;;-1:-1:-1;745:16:32;;485:322;-1:-1:-1;485:322:32:o;812:278::-;-1:-1:-1;;;;;;997:33:32;;985:46;;967:3;1047:37;1081:1;1072:11;;1064:6;1047:37;:::i;:::-;1040:44;812:278;-1:-1:-1;;;;812:278:32:o;1095:189::-;1224:3;1249:29;1274:3;1266:6;1249:29;:::i;:::-;1242:36;1095:189;-1:-1:-1;;;1095:189:32:o;1289:277::-;1356:6;1409:2;1397:9;1388:7;1384:23;1380:32;1377:52;;;1425:1;1422;1415:12;1377:52;1457:9;1451:16;1510:5;1503:13;1496:21;1489:5;1486:32;1476:60;;1532:1;1529;1522:12", "linkReferences": {} }, "methodIdentifiers": { diff --git a/src/TaxToken.sol b/src/TaxToken.sol new file mode 100644 index 0000000..7e7c55e --- /dev/null +++ b/src/TaxToken.sol @@ -0,0 +1,537 @@ +//SPDX-License-Identifier: MIT +pragma solidity ^0.8.6; + +import { IERC20 } from "./interfaces/IERC20.sol"; +import { ITreasury, IVesting } from "./interfaces/InterfacesAggregated.sol"; +import { IUniswapV2Factory } from "./interfaces/IUniswapV2Factory.sol"; +import { IUniswapV2Router02 } from "./interfaces/IUniswapV2Router.sol"; +import { ERC20 } from "./interfaces/ERC20.sol"; +import "./extensions/Ownable.sol"; + +/// @dev The TaxToken is responsible for supporting generic ERC20 functionality including ERC20Pausable functionality. +/// The TaxToken will generate taxes on transfer() and transferFrom() calls for non-whitelisted addresses. +/// The Admin can specify the tax fee in basis points for buys, sells, and transfers. +/// The TaxToken will forward all taxes generated to a Treasury +contract TaxToken is ERC20, Ownable { + + // --------------- + // State Variables + // --------------- + + // ERC20 Basic + uint256 _totalSupply; + //uint8 private _decimals; + string private _name; + string private _symbol; + + // ERC20 Pausable state + bool private _paused; + + // Extras + address public treasury; + address public vesting; + address public depositor; + + address public constant UNIV2_ROUTER = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; + address public immutable UNISWAP_V2_PAIR; + + bool public taxesRemoved; /// @dev Once true, taxes are permanently set to 0 and CAN NOT be increased in the future. + + uint256 public maxWalletSize; + uint256 public maxTxAmount; + + uint256 public maxContractTokenBalance; + bool inSwap = false; + + // Extras Mappings + mapping(address => bool) public blacklist; /// @dev If an address is blacklisted, they cannot perform transfer() or transferFrom(). + mapping(address => bool) public whitelist; /// @dev Any transfer that involves a whitelisted address, will not incur a tax. + mapping(address => uint8) public senderTaxType; /// @dev Identifies tax type for msg.sender of transfer() call. + mapping(address => uint8) public receiverTaxType; /// @dev Identifies tax type for _to of transfer() call. + mapping(uint8 => uint) public basisPointsTax; /// @dev Mapping between taxType and basisPoints (taxed). + mapping(address => bool) public authorized; /// @dev Mapping of which wallets are authorized to call specific functions. + mapping(uint8 => uint256) public taxesAccrued; + + mapping(address => uint) public industryTokens; /// @dev Mapping of how many locked tokens exist in a wallet (In 18 decimal format). + mapping(address => uint) public lifetimeIndustryTokens; /// @dev Mapping of how many locked tokens have ever been minted (In 18 decimal format). + + // ----------- + // Constructor + // ----------- + + /// @notice Initializes the TaxToken. + /// @dev _paused - ERC20 Pausable global state variable, initial state is not paused ("unpaused"). + /// @dev The "owner" is the "admin" of this contract. + /// @dev Initial liquidity, allocated entirely to "owner". + /// @param totalSupplyInput The total supply of this token (this value is multipled by 10**decimals in constructor). + /// @param nameInput The name of this token. + /// @param symbolInput The symbol of this token. + /// @param decimalsInput The decimal precision of this token. + /// @param maxWalletSizeInput The maximum wallet size (this value is multipled by 10**decimals in constructor). + /// @param maxTxAmountInput The maximum tx size (this value is multipled by 10**decimals in constructor). + constructor( + uint totalSupplyInput, + string memory nameInput, + string memory symbolInput, + uint8 decimalsInput, + uint256 maxWalletSizeInput, + uint256 maxTxAmountInput + ) ERC20(nameInput, symbolInput) { + _paused = false; + _setupDecimals(decimalsInput); + _totalSupply = totalSupplyInput * (10 ** decimals()); + + // Create a uniswap pair for this new token. + UNISWAP_V2_PAIR = IUniswapV2Factory( + IUniswapV2Router02(UNIV2_ROUTER).factory() + ).createPair(address(this), IUniswapV2Router02(UNIV2_ROUTER).WETH()); + + senderTaxType[UNISWAP_V2_PAIR] = 1; + receiverTaxType[UNISWAP_V2_PAIR] = 2; + + maxWalletSize = maxWalletSizeInput * (10 ** decimals()); + maxTxAmount = maxTxAmountInput * (10 ** decimals()); + + maxContractTokenBalance = 1 * (10 ** decimals()); + + whitelist[address(this)] = true; + whitelist[address(0)] = true; + whitelist[owner()] = true; + + _mint(owner(), totalSupplyInput * (10 ** decimals())); + } + + + // --------- + // Modifiers + // --------- + + /// @dev whenNotPausedUni() is used if the contract MUST be paused ("paused"). + modifier whenNotPausedUni(address a) { + require(!paused() || whitelist[a], "TaxToken.sol::whenNotPausedUni(), Contract is currently paused."); + _; + } + + /// @dev whenNotPausedDual() is used if the contract MUST be paused ("paused"). + modifier whenNotPausedDual(address _from, address _to) { + require(!paused() || whitelist[_from] || whitelist[_to], "TaxToken.sol::whenNotPausedDual(), Contract is currently paused."); + _; + } + + /// @dev whenNotPausedTri() is used if the contract MUST be paused ("paused"). + modifier whenNotPausedTri(address _from, address _to, address _sender) { + require(!paused() || whitelist[_from] || whitelist[_to] || whitelist[_sender], "TaxToken.sol::whenNotPausedTri(), Contract is currently paused."); + _; + } + + /// @dev whenPaused() is used if the contract MUST NOT be paused ("unpaused"). + modifier whenPaused() { + require(paused(), "TaxToken.sol::whenPaused(), Contract is not currently paused."); + _; + } + + /// @dev isAuthorized() is used if msg.sender MUST be either the owner, or an authorized user/contract. + modifier onlyAuthorized { + require(msg.sender == owner() || authorized[msg.sender] == true, "TaxToken.sol::onlyAuthorized(), msg.sender is not authorized."); + _; + } + + modifier lockTheSwap { + inSwap = true; + _; + inSwap = false; + } + + + // ------ + // Events + // ------ + + /// @dev Emitted when the pause is triggered by `account`. + event Paused(address); + + /// @dev Emitted when the pause is lifted by `account`. + event Unpaused(address); + + /// @dev Emitted during transferFrom(). + event TransferTax(address indexed _treasury, uint256 _value); + + /// @dev Emitted when updating authorized addresses (users or contracts). + event UpdatedAuthorizedWallets(address indexed _account, bool _state); + + event TreasuryUpdated(address, address); + + event VestingUpdated(address, address); + + event DepositorUpdated(address, address); + + event TaxesPermanentlyRemoved(); + + event MaxTxUpdated(uint256); + + event MaxWalletUpdated(uint256); + + + // --------- + // Functions + // --------- + + // ~ ERC20 _transfer() ~ + + function _transfer(address _from, address _to, uint256 _amount) internal override { + + // taxType 0 => Xfer Tax + // taxType 1 => Buy Tax + // taxType 2 => Sell Tax + uint8 _taxType; + + require(!paused() || whitelist[_from] || whitelist[_to] || whitelist[msg.sender], "TaxToken.sol::_transfer() contract is currently paused."); + require(balanceOf(_from) >= _amount, "TaxToken::_transfer() insufficient balance"); + require(_amount > 0, "TaxToken::_transfer() amount must be greater than 0"); + + // Take a tax from them if neither party is whitelisted. + if (!whitelist[_to] && !whitelist[_from] && !whitelist[msg.sender] && _from != address(this)) { + + require (maxTxAmount >= _amount, "TaxToken::_transfer() amount exceeds maxTxAmount"); + require (!blacklist[_from], "TaxToken::_transfer() sender is blacklisted"); + require (!blacklist[_to], "TaxToken::_transfer() receiver is blacklisted"); + + // Determine, if not the default 0, tax type of transfer. + if (senderTaxType[_from] != 0) { + _taxType = senderTaxType[_from]; // buy -> 1 + } + + if (receiverTaxType[_to] != 0) { + _taxType = receiverTaxType[_to]; // sell -> 2 + } + + uint _taxAmt = _amount * basisPointsTax[_taxType] / 10000; + uint _sendAmt = _amount - _taxAmt; + + require(_taxAmt + _sendAmt == _amount, "TaxToken::_transfer() critical math error"); + + /// @dev if it's a sell (_taxType == 2), _to will be pair address thus we don't want to check for maxWalletSize. + if (_taxType != 2 && _to != depositor) { + require(balanceOf(_to) + _sendAmt <= maxWalletSize, "TaxToken::_transfer() amount exceeds maxWalletAmount"); + } + + if (_taxType == 2 && !inSwap) { + uint256 contractTokenBalance = getContractTokenBalance(); + + if(contractTokenBalance > maxTxAmount) { + contractTokenBalance = maxTxAmount; + } + + if (contractTokenBalance >= maxContractTokenBalance) { + handleRoyalties(contractTokenBalance); + } + } + + super._transfer(_from, _to, _sendAmt); + + //taxesAccrued[_taxType] += _taxAmt; + super._transfer(_from, address(this), _taxAmt); + } + // Skip taxation if either party is whitelisted (_from or _to). + else { + super._transfer(_from, _to, _amount); + } + } + + function handleRoyalties(uint256 _contractTokenBalance) internal lockTheSwap { + uint256 amountWeth = swapTokensForWeth(_contractTokenBalance); + + if (amountWeth > 0) { + // Update Treasury Accounting + ITreasury(treasury).updateTaxesAccrued(amountWeth); + emit TransferTax(treasury, amountWeth); + } + } + + function swapTokensForWeth(uint256 _amountTokensForSwap) internal returns (uint256){ + // generate the uniswap pair path of token -> weth + address[] memory path = new address[](2); + path[0] = address(this); + path[1] = IUniswapV2Router02(UNIV2_ROUTER).WETH(); + + _approve(address(this), address(UNIV2_ROUTER), _amountTokensForSwap); + + uint256[] memory amounts = IUniswapV2Router02(UNIV2_ROUTER).getAmountsOut( + _amountTokensForSwap, + path + ); + + // make the swap + IUniswapV2Router02(UNIV2_ROUTER).swapExactTokensForTokensSupportingFeeOnTransferTokens( + _amountTokensForSwap, + 0, + path, + address(treasury), + block.timestamp + 300 + ); + + return amounts[1]; + } + + + // ~ ERC20 Pausable ~ + + /// @notice Pause the contract, blocks transfer() and transferFrom(). + /// @dev Contract MUST NOT be paused to call this, caller must be "owner". + function pause() external onlyOwner whenNotPausedUni(msg.sender) { + _paused = true; + emit Paused(msg.sender); + } + + /// @notice Unpause the contract. + /// @dev Contract MUST be paused to call this, caller must be "owner". + function unpause() external onlyOwner whenPaused { + _paused = false; + emit Unpaused(msg.sender); + } + + /// @return _paused Indicates whether the contract is paused (true) or not paused (false). + function paused() public view virtual returns (bool) { + return _paused; + } + + + // ~ TaxType & Fee Management ~ + + /// @notice Used to store the LP Pair to differ type of transaction. Will be used to mark a BUY. + /// @dev _taxType must be lower than 3 because there can only be 3 tax types; buy, sell, & send. + /// @param _sender This value is the PAIR address. + /// @param _taxType This value must be be 0, 1, or 2. Best to correspond value with the BUY tax type. + function updateSenderTaxType(address _sender, uint8 _taxType) external onlyOwner { + require(_taxType < 3, "TaxToken::updateSenderTaxType(), _taxType must be less than 3."); + senderTaxType[_sender] = _taxType; + } + + /// @notice Used to store the LP Pair to differ type of transaction. Will be used to mark a SELL. + /// @dev _taxType must be lower than 3 because there can only be 3 tax types; buy, sell, & send. + /// @param _receiver This value is the PAIR address. + /// @param _taxType This value must be be 0, 1, or 2. Best to correspond value with the SELL tax type. + function updateReceiverTaxType(address _receiver, uint8 _taxType) external onlyOwner { + require(_taxType < 3, "TaxToken::updateReceiverTaxType(), _taxType must be less than 3."); + receiverTaxType[_receiver] = _taxType; + } + + /// @notice Used to map the tax type 0, 1 or 2 with it's corresponding tax percentage. + /// @dev Must be lower than 2000 which is equivalent to 20%. + /// @param _taxType This value is the tax type. Has to be 0, 1, or 2. + /// @param _bpt This is the corresponding percentage that is taken for royalties. 1200 = 12%. + function adjustBasisPointsTax(uint8 _taxType, uint _bpt) external onlyOwner { + require(_bpt <= 2000, "TaxToken.sol::adjustBasisPointsTax(), _bpt > 2000 (20%)."); + require(!taxesRemoved, "TaxToken.sol::adjustBasisPointsTax(), Taxation has been removed."); + basisPointsTax[_taxType] = _bpt; + } + + /// @notice Permanently remove taxes from this contract. + /// @dev An input is required here for sanity-check, given importance of this function call (and irreversible nature). + /// @param _key This value MUST equal 42 for function to execute. + function permanentlyRemoveTaxes(uint _key) external onlyOwner { + require(_key == 42, "TaxToken::permanentlyRemoveTaxes(), _key != 42."); + require(!taxesRemoved, "TaxToken.sol::adjustBasisPointsTax(), Taxation has already been removed."); + basisPointsTax[0] = 0; + basisPointsTax[1] = 0; + basisPointsTax[2] = 0; + taxesRemoved = true; + + emit TaxesPermanentlyRemoved(); + } + + + // ~ Admin ~ + + function transferOwnership(address newOwner) public override onlyOwner { + whitelist[newOwner] = true; + super.transferOwnership(newOwner); + } + + function distributeRoyaltiesToTreasury() external onlyOwner { + // TODO: Add require statement + if (!inSwap) { + handleRoyalties(getContractTokenBalance()); + } + // test contractTokenbalance being over max Tx amount + } + + /// @notice This is used to change the owner's wallet address. Used to give ownership to another wallet. + /// @param _account is the address that will change from authorized or not. + /// @param _state (True or False) If true, _account is authorized, if false, _account is not authorized. + function updateAuthorizedList(address _account, bool _state) external onlyOwner { + require(_account != address(0), "TaxToken.sol::updateAuthorizedList() _owner == 0"); + require(authorized[_account] == _state, "TaxToken.sol::updateAuthorizedList() _account is already set to _state"); + + authorized[_account] = _state; + + emit UpdatedAuthorizedWallets(_account, _state); + } + + /// @notice Set the treasury (contract) which receives taxes generated through transfer() and transferFrom(). + /// @param _treasury is the contract address of the treasury. + function setTreasury(address _treasury) external onlyOwner { + require(_treasury != treasury, "TaxToken.sol::setTreasury() already set to treasury address"); + require(_treasury != address(0), "TaxToken.sol::setTreasury() treasury cannot be address(0)"); + + treasury = _treasury; + modifyWhitelist(treasury, true); + + emit TreasuryUpdated(treasury, _treasury); + } + + /// @notice Set the vesting (contract) which is then whitelisted and minted the amount needed for vesting. + /// @param _vesting is the contract address of the vesting. + function setVesting(address _vesting) external onlyOwner { + require(_vesting != vesting, "TaxToken.sol::setVesting() already set to treasury address"); + require(_vesting != address(0), "TaxToken.sol::setVesting() treasury cannot be address(0)"); + + vesting = _vesting; + modifyWhitelist(vesting, true); + + uint256 amount = IVesting(vesting).getAllVestedTokens(); + _mint(vesting, amount); + + emit VestingUpdated(vesting, _vesting); + } + + /// @notice Set the depositor (contract) which is the backend contract for the dapp. + /// @param _depositor is the contract address of the depositor contract. + function setDepositor(address _depositor) external onlyOwner { + require(_depositor != depositor, "TaxToken.sol::setdepositor() already set to treasury address"); + require(_depositor != address(0), "TaxToken.sol::setdepositor() treasury cannot be address(0)"); + + depositor = _depositor; + modifyWhitelist(depositor, false); /// @dev Depositor should not be whitelisted. + + emit DepositorUpdated(depositor, _depositor); + } + + /// @notice Updates the maxContractTokebBalance var which is used to set the distribution threshhold of royalties to the Treasury. + /// @param _amount is the amount of tokens that need to be hit to distribute. + function updateMaxContractTokenBalance(uint256 _amount) external onlyOwner { + maxContractTokenBalance = (_amount * 10 ** decimals()); + } + + /// @notice Adjust maxTxAmount value (maximum amount transferrable in a single transaction). + /// @dev Does not affect whitelisted wallets. + /// @param _maxTxAmount is the max amount of tokens that can be transacted at one time for a non-whitelisted wallet. + function updateMaxTxAmount(uint256 _maxTxAmount) external onlyOwner { + require(_maxTxAmount > 0, "TaxToken.sol::updateMaxTxAmount() _maxTxAmount must be gt 0"); + + maxTxAmount = (_maxTxAmount * 10 ** decimals()); + + emit MaxTxUpdated(maxTxAmount); + } + + /// @notice This function is used to set the max amount of tokens a wallet can hold. + /// @dev Does not affect whitelisted wallets. + /// @param _maxWalletSize is the max amount of tokens that can be held on a non-whitelisted wallet. + function updateMaxWalletSize(uint256 _maxWalletSize) external onlyOwner { + require(_maxWalletSize > 0, "TaxToken.sol::updateMaxWalletSize() _maxWalletSize must be gt 0"); + + maxWalletSize = (_maxWalletSize * 10 ** decimals()); + + emit MaxWalletUpdated(maxWalletSize); + } + + /// @notice This function is used to add wallets to the whitelist mapping. + /// @dev Whitelisted wallets are not affected by maxWalletSize, maxTxAmount, or taxes. + /// @param _wallet is the wallet address that will have their whitelist status modified. + /// @param _whitelisted use True to whitelist a wallet, otherwise use False to remove wallet from whitelist. + function modifyWhitelist(address _wallet, bool _whitelisted) public onlyOwner { + whitelist[_wallet] = _whitelisted; + } + + /// @notice This function is used to add or remove wallets from the blacklist. + /// @dev Blacklisted wallets cannot perform transfer() or transferFrom(). + /// unless it's to or from a whitelisted wallet. + /// @param _wallet is the wallet address that will have their blacklist status modified. + /// @param _blacklist use True to blacklist a wallet, otherwise use False to remove wallet from blacklist. + function modifyBlacklist(address _wallet, bool _blacklist) external onlyOwner { + if (_blacklist) { + require(!whitelist[_wallet], "TaxToken.sol::modifyBlacklist(), cannot blacklist a whitelisted wallet"); + require(_wallet != treasury, "TaxToken.sol::modifyBlacklist(), cannot blacklist treasury"); + require(_wallet != depositor, "TaxToken.sol::modifyBlacklist(), cannot blacklist depositor"); + require(_wallet != vesting, "TaxToken.sol::modifyBlacklist(), cannot blacklist vesting"); + require(_wallet != UNIV2_ROUTER, "TaxToken.sol::modifyBlacklist(), cannot blacklist the Uniswap ROUTER"); + require(_wallet != UNISWAP_V2_PAIR, "TaxToken.sol::modifyBlacklist(), cannot blacklist the Uniswap PAIR"); + require(_wallet != address(this), "TaxToken.sol::modifyBlacklist(), cannot blacklist this contract"); + } + blacklist[_wallet] = _blacklist; + } + + /// @notice This function will create new tokens and adding them to total supply. + /// @dev Does not truncate so amount needs to include the 18 decimal points. + /// Needed too add new tokens to supply if we want to get listed on multiple exchanges. + /// @param _wallet the account we're minting tokens to. + /// @param _amount the amount of tokens we're minting. + function mint(address _wallet, uint256 _amount) public onlyAuthorized() { + _mint(_wallet, _amount); + } + + /// @notice This function will destroy existing tokens and deduct them from total supply. + /// @dev Does not truncate so amount needs to include the 18 decimal points. + /// @param _wallet the account we're burning tokens from. + /// @param _amount the amount of tokens we're burning. + function burn(address _wallet, uint256 _amount) public onlyAuthorized() { + _burn(_wallet, _amount); + } + + /// @notice This function is used to mint tokens and log their creation to the industry wallet mappings. + /// @dev Any tokens minted through this process can only be used inside of the NFT marketplace to mint new NFTS (can only be burned). + /// @dev Users may still buy and sell new or prior existing non-minted tokens but these will be soulbound. + /// @dev Does not truncate so amount needs to include the 18 decimal points. + /// @param _wallet is the wallet address that will recieve these minted tokens. + /// @param _amount is the amount of tokens to be minted into _wallet. + function industryMint(address _wallet, uint256 _amount) external onlyAuthorized { + _mint(_wallet, _amount); + + industryTokens[_wallet] += _amount; + lifetimeIndustryTokens[_wallet] += _amount; + } + + /// @notice This function will destroy existing tokens and deduct them from total supply. + /// @dev Does not truncate so amount needs to include the 18 decimal points. + /// @param _wallet the account we're burning tokens from. + /// @param _amount the amount of tokens we're burning. + function industryBurn(address _wallet, uint256 _amount) external onlyAuthorized { + require(_wallet != address(0), "TaxToken.sol::industryBurn(), Cannot burn to zero address."); + require(balanceOf(_wallet) >= _amount, "TaxToken.sol::industryBurn(), Insufficient balance of $PROVE to burn."); + + if (industryTokens[_wallet] >= _amount) { + _burn(_wallet, _amount); + industryTokens[_wallet] -= _amount; + } else { + _burn(_wallet, _amount); + industryTokens[_wallet] = 0; + } + } + + + // ~ Read ~ + + /// @notice This functions returns the number of taxToken are inside the contract. + /// NOTE: These tokens have most likely been accrued from taxes. + /// @return uint256 the num of tokens stored in this contract. + function getContractTokenBalance() view public returns (uint256) { + return balanceOf(address(this)); + } + + /// @notice This function is a VIEW function that returns the amount of industry tokens, + /// full balance, and normal tokens a wallet has. + /// @dev This function is for the front end to pull industry data for a specific wallet. + /// @return numTokens the amount of taxTokens the _wallet holds. + /// @return numIndustryTokens the amount of tokens they hold that is industry tokens. + /// @return numDifference the amount of tokens they have that are NOT industry tokens. + /// @return lifetime the amount of industry tokens that have been minted to _wallet in total. + function getIndustryTokens(address _wallet) external view returns (uint numTokens, uint numIndustryTokens, uint numDifference, uint lifetime) { + uint fullBalance = IERC20(address(this)).balanceOf(_wallet); + uint industryBalance = industryTokens[_wallet]; + uint difference = fullBalance - industryBalance; + + // TODO: Test logic here -> fullbalalance - industryBalance might cause negative number -> underflow + + return (fullBalance, industryBalance, difference, lifetimeIndustryTokens[_wallet]); + } +} \ No newline at end of file diff --git a/src/Treasury.sol b/src/Treasury.sol new file mode 100644 index 0000000..7ab67e7 --- /dev/null +++ b/src/Treasury.sol @@ -0,0 +1,238 @@ +//SPDX-License-Identifier: MIT +pragma solidity ^0.8.6; + +import { IERC20 } from "./interfaces/IERC20.sol"; +import { IUniswapV2Router02 } from "./interfaces/IUniswapV2Router.sol"; +import "./extensions/Ownable.sol"; + + +/// @notice The treasury is responsible for escrow of TaxToken fee's. +/// The treasury handles accounting, for what's owed to different groups. +/// The treasury handles distribution of TaxToken fees to different groups. +/// The admin can modify how TaxToken fees are distributed (the TaxDistribution struct). +contract Treasury is Ownable { + + // --------------- + // State Variables + // --------------- + + /// @dev The token that fees are taken from, and what is held in escrow here. + address public taxToken; + + /// @dev The stablecoin that is distributed via royalties. + address public stable; + + /// @dev The administrator of accounting and distribution settings. + address public admin; + + uint256 public amountRoyaltiesWeth; + + address public constant UNIV2_ROUTER = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; + + address public WETH; + + // Mappings + + /// @notice Handles the internal accounting for how much taxToken is owed to each taxType. + /// @dev e.g. 10,000 taxToken owed to taxType 0 => taxTokenAccruedForTaxType[0] = 10000 * 10**18. + /// taxType 0 => Xfer Tax + /// taxType 1 => Buy Tax + /// taxType 2 => Sell Tax + mapping(uint => uint) public taxTokenAccruedForTaxType; // + + mapping(uint => uint) public WethAccruedForTaxType; // + + /// @dev Tracks amount of stablecoin distributed to recipients. + mapping(address => uint256) public distributionsStable; + + /// @dev taxSettings. + TaxDistribution public taxSettings; + + // Structs + + /// @notice Manages how TaxToken is distributed for a given taxType. + /// Variables: + /// walletCount => The number of wallets to distribute fees to. + /// wallets => The addresses to distribute fees (maps with convertToAsset and percentDistribution). + /// convertToAsset => The asset to pre-convert taxToken to prior to distribution (if same as taxToken, no conversion executed). + /// percentDistribution => The percentage of taxToken accrued for taxType to distribute. + struct TaxDistribution { + uint walletCount; + address[] wallets; + uint[] percentDistribution; + } + + + // ----------- + // Constructor + // ----------- + + /// @notice Initializes the Treasury. + /// @param _admin The administrator of the contract. + /// @param _taxToken The taxToken (ERC-20 asset) which accumulates in this Treasury. + constructor(address _admin, address _taxToken, address _stable) { + taxToken = _taxToken; + stable = _stable; + + transferOwnership(_admin); + + WETH = IUniswapV2Router02(UNIV2_ROUTER).WETH(); + } + + + // --------- + // Modifiers + // --------- + + /// @dev Enforces msg.sender is taxToken. + modifier isTaxToken { + require(msg.sender == taxToken); + _; + } + + + // ------ + // Events + // ------ + + /// @dev Emitted when royalties are distributed via distributeTaxes() + event RoyaltiesDistributed(address indexed recipient, uint amount, address asset); + + /// @dev Emitted when the stable state variable is updated via updateStable() + event StableUpdated(address currentStable, address newStable); + + /// @dev Emitted when the treasury receives royalties + event RoyaltiesReceived(uint256 amountReceived, uint256 newTotal); + + + // --------- + // Functions + // --------- + + /// @notice Increases _amt of taxToken allocated to _taxType. + /// @dev Only callable by taxToken. + /// @param _amt The amount of taxToken going to taxType. + function updateTaxesAccrued(uint _amt) isTaxToken external { + amountRoyaltiesWeth += _amt; + emit RoyaltiesReceived(_amt, amountRoyaltiesWeth); + //taxTokenAccruedForTaxType[_taxType] += _amt; + } + + function viewTaxesAccrued() external view returns (uint _amountAccrued) { + return amountRoyaltiesWeth; + } + + /// @notice This function modifies the distribution settings for all taxes. + /// @dev Only callable by Admin. + /// @param _walletCount The number of wallets to distribute across. + /// @param _wallets The address of wallets to distribute fees across. + /// @param _percentDistribution The percentage (corresponding with wallets) to distribute taxes to of overall amount owed for taxType. + function setTaxDistribution(uint _walletCount, address[] calldata _wallets, uint[] calldata _percentDistribution) external onlyOwner { + + // Pre-check that supplied values have equal lengths. + require(_walletCount == _wallets.length, "Treasury.sol::setTaxDistribution(), walletCount length != wallets.length"); + require(_walletCount == _percentDistribution.length, "Treasury.sol::setTaxDistribution(), walletCount length != percentDistribution.length"); + + // Enforce sum(percentDistribution) = 100; + uint sumPercentDistribution; + for(uint i = 0; i < _walletCount; i++) { + sumPercentDistribution += _percentDistribution[i]; + } + require(sumPercentDistribution == 100, "Treasury.sol::setTaxDistribution(), sumPercentDistribution != 100"); + + // Update taxSettings for taxType. + taxSettings = TaxDistribution( + _walletCount, + _wallets, + _percentDistribution + ); + } + + /// @notice Distributes taxes for given taxType. + function distributeTaxes() external returns(uint256 _amountToDistribute) { + + _amountToDistribute = amountRoyaltiesWeth; + + if (_amountToDistribute > 0) { + + amountRoyaltiesWeth = 0; + + assert(IERC20(WETH).approve(address(UNIV2_ROUTER), _amountToDistribute)); + + address[] memory path_uni_v2 = new address[](2); + + path_uni_v2[0] = WETH; + path_uni_v2[1] = stable; + + IUniswapV2Router02(UNIV2_ROUTER).swapExactTokensForTokens( + _amountToDistribute, + 0, + path_uni_v2, + address(this), + block.timestamp + 30000 + ); + + uint balanceStable = IERC20(stable).balanceOf(address(this)); + + for (uint i = 0; i < taxSettings.wallets.length; i++) { + uint amt = balanceStable * taxSettings.percentDistribution[i] / 100; + + assert(IERC20(stable).transfer(taxSettings.wallets[i], amt)); + + distributionsStable[taxSettings.wallets[i]] += amt; + emit RoyaltiesDistributed(taxSettings.wallets[i], amt, stable); + } + } + + return _amountToDistribute; + } + + /// @notice Helper view function for taxSettings. + /// @return uint256 num of wallets in distribution. + /// @return address[] array of wallets in distribution. + /// @return uint[] array of distribution, all uints must add up to 100. + function viewTaxSettings() external view returns(uint256, address[] memory, uint[] memory) { + return ( + taxSettings.walletCount, + taxSettings.wallets, + taxSettings.percentDistribution + ); + } + + /// @notice Withdraw a non-taxToken from the treasury. + /// @dev Reverts if token == taxtoken. + /// @dev Only callable by Admin. + /// @param _token The token to withdraw from the treasury. + function safeWithdraw(address _token) external onlyOwner { + if (_token == WETH) { amountRoyaltiesWeth = 0; } + assert(IERC20(_token).transfer(msg.sender, IERC20(_token).balanceOf(address(this)))); + } + + /// @notice Change the stable value of the treasury distriubution. + /// @dev Only callable by Admin. + /// @param _stable New stablecoin address. + function updateStable(address _stable) external onlyOwner { + require(_stable != stable, "Treasury.sol::updateStable() value already set"); + emit StableUpdated(stable, _stable); + stable = _stable; + } + + /// @notice View function for exchanging fees collected for given taxType. + /// @param _path The path by which taxToken is converted into a given asset (i.e. taxToken => DAI => LINK). + /// @param _taxType The taxType to be exchanged. + function exchangeRateForTaxType(address[] memory _path, uint _taxType) external view returns(uint256) { + return IUniswapV2Router02(UNIV2_ROUTER).getAmountsOut( + taxTokenAccruedForTaxType[_taxType], + _path + )[_path.length - 1]; + } + + /// @notice View function for exchanging fees collected for given taxType. + /// @param _path The path by which taxToken is converted into a given asset (i.e. taxToken => DAI => LINK). + function exchangeRateForWethToStable(address[] memory _path) external view returns(uint256) { + return IUniswapV2Router02(UNIV2_ROUTER).getAmountsOut( + amountRoyaltiesWeth, + _path + )[_path.length - 1]; + } +} \ No newline at end of file diff --git a/src/Vesting.sol b/src/Vesting.sol index 1fa81a9..c9c4e01 100644 --- a/src/Vesting.sol +++ b/src/Vesting.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.13; import "./extensions/Ownable.sol"; -import {IERC20} from "./interfaces/Interfaces.sol"; +import {IERC20} from "./interfaces/IERC20.sol"; /// @dev Vesting Schedule: 12% day 1 then 8% every month thereafter. @@ -21,6 +21,8 @@ contract Vesting is Ownable { uint256 public vestingStartUnix; /// @notice block timestamp of when vesting has begun bool public vestingEnabled; /// @notice vesting enabled when true. + uint256 public totalTokensToVest; + Investor[] investorLibrary; /// @notice array of investors. /// @param account The wallet address of investor. @@ -122,6 +124,8 @@ contract Vesting is Ownable { investors[_account] = true; investorLibrary.push(Investor(_account, _tokensToVest, 0)); + + totalTokensToVest += _tokensToVest; emit InvestorAdded(_account); } @@ -175,6 +179,12 @@ contract Vesting is Ownable { // View // ---- + /// @notice This function returns the amount of total tokens this contract will vest + /// @return uint256 total amount of tokens to vest. + function getAllVestedTokens() external view returns (uint256) { + return totalTokensToVest; + } + /// @notice This function returns the amount of tokens to claim for a specified investor. /// @param _account address of investor. /// @return uint256 amount of tokens to claim. diff --git a/src/interfaces/ERC20.sol b/src/interfaces/ERC20.sol new file mode 100644 index 0000000..8e8a04a --- /dev/null +++ b/src/interfaces/ERC20.sol @@ -0,0 +1,506 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.8.6; + +import "../extensions/Context.sol"; +import "./IERC20.sol"; + +library SafeMath { + /** + * @dev Returns the addition of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + uint256 c = a + b; + if (c < a) return (false, 0); + return (true, c); + } + } + + /** + * @dev Returns the subtraction of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b > a) return (false, 0); + return (true, a - b); + } + } + + /** + * @dev Returns the multiplication of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) return (true, 0); + uint256 c = a * b; + if (c / a != b) return (false, 0); + return (true, c); + } + } + + /** + * @dev Returns the division of two unsigned integers, with a division by zero flag. + * + * _Available since v3.4._ + */ + function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b == 0) return (false, 0); + return (true, a / b); + } + } + + /** + * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. + * + * _Available since v3.4._ + */ + function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b == 0) return (false, 0); + return (true, a % b); + } + } + + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint256 a, uint256 b) internal pure returns (uint256) { + return a + b; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + return a - b; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint256 a, uint256 b) internal pure returns (uint256) { + return a * b; + } + + /** + * @dev Returns the integer division of two unsigned integers, reverting on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint256 a, uint256 b) internal pure returns (uint256) { + return a / b; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * reverting when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint256 a, uint256 b) internal pure returns (uint256) { + return a % b; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {trySub}. + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + unchecked { + require(b <= a, errorMessage); + return a - b; + } + } + + /** + * @dev Returns the integer division of two unsigned integers, reverting with custom message on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + unchecked { + require(b > 0, errorMessage); + return a / b; + } + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * reverting with custom message when dividing by zero. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryMod}. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + unchecked { + require(b > 0, errorMessage); + return a % b; + } + } +} + +/** + * @dev Implementation of the {IERC20} interface. + * + * This implementation is agnostic to the way tokens are created. This means + * that a supply mechanism has to be added in a derived contract using {_mint}. + * For a generic mechanism see {ERC20PresetMinterPauser}. + * + * TIP: For a detailed writeup see our guide + * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How + * to implement supply mechanisms]. + * + * We have followed general OpenZeppelin guidelines: functions revert instead + * of returning `false` on failure. This behavior is nonetheless conventional + * and does not conflict with the expectations of ERC20 applications. + * + * Additionally, an {Approval} event is emitted on calls to {transferFrom}. + * This allows applications to reconstruct the allowance for all accounts just + * by listening to said events. Other implementations of the EIP may not emit + * these events, as it isn't required by the specification. + * + * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} + * functions have been added to mitigate the well-known issues around setting + * allowances. See {IERC20-approve}. + */ +contract ERC20 is Context, IERC20 { + using SafeMath for uint256; + + mapping (address => uint256) private _balances; + + mapping (address => mapping (address => uint256)) private _allowances; + + uint256 private _totalSupply; + + string private _name; + string private _symbol; + uint8 private _decimals; + + /** + * @dev Sets the values for {name} and {symbol}, initializes {decimals} with + * a default value of 18. + * + * To select a different value for {decimals}, use {_setupDecimals}. + * + * All three of these values are immutable: they can only be set once during + * construction. + */ + constructor (string memory name_, string memory symbol_) { + _name = name_; + _symbol = symbol_; + _decimals = 18; + } + + /** + * @dev Returns the name of the token. + */ + function name() public view virtual returns (string memory) { + return _name; + } + + /** + * @dev Returns the symbol of the token, usually a shorter version of the + * name. + */ + function symbol() public view virtual returns (string memory) { + return _symbol; + } + + /** + * @dev Returns the number of decimals used to get its user representation. + * For example, if `decimals` equals `2`, a balance of `505` tokens should + * be displayed to a user as `5,05` (`505 / 10 ** 2`). + * + * Tokens usually opt for a value of 18, imitating the relationship between + * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is + * called. + * + * NOTE: This information is only used for _display_ purposes: it in + * no way affects any of the arithmetic of the contract, including + * {IERC20-balanceOf} and {IERC20-transfer}. + */ + function decimals() public view virtual returns (uint8) { + return _decimals; + } + + /** + * @dev See {IERC20-totalSupply}. + */ + function totalSupply() public view virtual override returns (uint256) { + return _totalSupply; + } + + /** + * @dev See {IERC20-balanceOf}. + */ + function balanceOf(address account) public view virtual override returns (uint256) { + return _balances[account]; + } + + /** + * @dev See {IERC20-transfer}. + * + * Requirements: + * + * - `recipient` cannot be the zero address. + * - the caller must have a balance of at least `amount`. + */ + function transfer(address recipient, uint256 amount) public virtual override returns (bool) { + _transfer(_msgSender(), recipient, amount); + return true; + } + + /** + * @dev See {IERC20-allowance}. + */ + function allowance(address owner, address spender) public view virtual override returns (uint256) { + return _allowances[owner][spender]; + } + + /** + * @dev See {IERC20-approve}. + * + * Requirements: + * + * - `spender` cannot be the zero address. + */ + function approve(address spender, uint256 amount) public virtual override returns (bool) { + _approve(_msgSender(), spender, amount); + return true; + } + + /** + * @dev See {IERC20-transferFrom}. + * + * Emits an {Approval} event indicating the updated allowance. This is not + * required by the EIP. See the note at the beginning of {ERC20}. + * + * Requirements: + * + * - `sender` and `recipient` cannot be the zero address. + * - `sender` must have a balance of at least `amount`. + * - the caller must have allowance for ``sender``'s tokens of at least + * `amount`. + */ + function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { + _transfer(sender, recipient, amount); + _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); + return true; + } + + /** + * @dev Atomically increases the allowance granted to `spender` by the caller. + * + * This is an alternative to {approve} that can be used as a mitigation for + * problems described in {IERC20-approve}. + * + * Emits an {Approval} event indicating the updated allowance. + * + * Requirements: + * + * - `spender` cannot be the zero address. + */ + function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { + _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); + return true; + } + + /** + * @dev Atomically decreases the allowance granted to `spender` by the caller. + * + * This is an alternative to {approve} that can be used as a mitigation for + * problems described in {IERC20-approve}. + * + * Emits an {Approval} event indicating the updated allowance. + * + * Requirements: + * + * - `spender` cannot be the zero address. + * - `spender` must have allowance for the caller of at least + * `subtractedValue`. + */ + function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { + _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); + return true; + } + + /** + * @dev Moves tokens `amount` from `sender` to `recipient`. + * + * This is internal function is equivalent to {transfer}, and can be used to + * e.g. implement automatic token fees, slashing mechanisms, etc. + * + * Emits a {Transfer} event. + * + * Requirements: + * + * - `sender` cannot be the zero address. + * - `recipient` cannot be the zero address. + * - `sender` must have a balance of at least `amount`. + */ + function _transfer(address sender, address recipient, uint256 amount) internal virtual { + require(sender != address(0), "ERC20: transfer from the zero address"); + require(recipient != address(0), "ERC20: transfer to the zero address"); + + + _beforeTokenTransfer(sender, recipient, amount); + + _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); + _balances[recipient] = _balances[recipient].add(amount); + emit Transfer(sender, recipient, amount); + } + + /** @dev Creates `amount` tokens and assigns them to `account`, increasing + * the total supply. + * + * Emits a {Transfer} event with `from` set to the zero address. + * + * Requirements: + * + * - `to` cannot be the zero address. + */ + function _mint(address account, uint256 amount) internal virtual { + require(account != address(0), "ERC20: mint to the zero address"); + + _beforeTokenTransfer(address(0), account, amount); + + _totalSupply = _totalSupply.add(amount); + _balances[account] = _balances[account].add(amount); + emit Transfer(address(0), account, amount); + } + + /** + * @dev Destroys `amount` tokens from `account`, reducing the + * total supply. + * + * Emits a {Transfer} event with `to` set to the zero address. + * + * Requirements: + * + * - `account` cannot be the zero address. + * - `account` must have at least `amount` tokens. + */ + function _burn(address account, uint256 amount) internal virtual { + require(account != address(0), "ERC20: burn from the zero address"); + + _beforeTokenTransfer(account, address(0), amount); + + _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); + _totalSupply = _totalSupply.sub(amount); + emit Transfer(account, address(0), amount); + } + + /** + * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. + * + * This internal function is equivalent to `approve`, and can be used to + * e.g. set automatic allowances for certain subsystems, etc. + * + * Emits an {Approval} event. + * + * Requirements: + * + * - `owner` cannot be the zero address. + * - `spender` cannot be the zero address. + */ + function _approve(address owner, address spender, uint256 amount) internal virtual { + require(owner != address(0), "ERC20: approve from the zero address"); + require(spender != address(0), "ERC20: approve to the zero address"); + + _allowances[owner][spender] = amount; + emit Approval(owner, spender, amount); + } + + /** + * @dev Sets {decimals} to a value other than the default one of 18. + * + * WARNING: This function should only be called from the constructor. Most + * applications that interact with token contracts will not expect + * {decimals} to ever change, and may work incorrectly if it does. + */ + function _setupDecimals(uint8 decimals_) internal virtual { + _decimals = decimals_; + } + + /** + * @dev Hook that is called before any transfer of tokens. This includes + * minting and burning. + * + * Calling conditions: + * + * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens + * will be to transferred to `to`. + * - when `from` is zero, `amount` tokens will be minted for `to`. + * - when `to` is zero, `amount` of ``from``'s tokens will be burned. + * - `from` and `to` are never both zero. + * + * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. + */ + function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } +} \ No newline at end of file diff --git a/src/interfaces/IERC20.sol b/src/interfaces/IERC20.sol new file mode 100644 index 0000000..ca52214 --- /dev/null +++ b/src/interfaces/IERC20.sol @@ -0,0 +1,77 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.8.6; + +interface IERC20 { + /** + * @dev Returns the amount of tokens in existence. + */ + function totalSupply() external view returns (uint256); + + /** + * @dev Returns the amount of tokens owned by `account`. + */ + function balanceOf(address account) external view returns (uint256); + + /** + * @dev Moves `amount` tokens from the caller's account to `recipient`. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transfer(address recipient, uint256 amount) external returns (bool); + + /** + * @dev Returns the remaining number of tokens that `spender` will be + * allowed to spend on behalf of `owner` through {transferFrom}. This is + * zero by default. + * + * This value changes when {approve} or {transferFrom} are called. + */ + function allowance(address owner, address spender) external view returns (uint256); + + /** + * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * IMPORTANT: Beware that changing an allowance with this method brings the risk + * that someone may use both the old and the new allowance by unfortunate + * transaction ordering. One possible solution to mitigate this race + * condition is to first reduce the spender's allowance to 0 and set the + * desired value afterwards: + * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 + * + * Emits an {Approval} event. + */ + function approve(address spender, uint256 amount) external returns (bool); + + /** + * @dev Moves `amount` tokens from `sender` to `recipient` using the + * allowance mechanism. `amount` is then deducted from the caller's + * allowance. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); + + /** + * @dev Emitted when `value` tokens are moved from one account (`from`) to + * another (`to`). + * + * Note that `value` may be zero. + */ + event Transfer(address indexed from, address indexed to, uint256 value); + + /** + * @dev Emitted when the allowance of a `spender` for an `owner` is set by + * a call to {approve}. `value` is the new allowance. + */ + event Approval(address indexed owner, address indexed spender, uint256 value); +} + +abstract contract IERC20Extended is IERC20 { + function decimals() external view virtual returns (uint8); +} \ No newline at end of file diff --git a/src/interfaces/IUniswapV2Factory.sol b/src/interfaces/IUniswapV2Factory.sol new file mode 100644 index 0000000..9ecf1fa --- /dev/null +++ b/src/interfaces/IUniswapV2Factory.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.8.6; + +interface IUniswapV2Factory { + event PairCreated(address indexed token0, address indexed token1, address pair, uint); + + function feeTo() external view returns (address); + function feeToSetter() external view returns (address); + + function getPair(address tokenA, address tokenB) external view returns (address pair); + function allPairs(uint) external view returns (address pair); + function allPairsLength() external view returns (uint); + + function createPair(address tokenA, address tokenB) external returns (address pair); + + function setFeeTo(address) external; + function setFeeToSetter(address) external; +} \ No newline at end of file diff --git a/src/interfaces/IUniswapV2Pair.sol b/src/interfaces/IUniswapV2Pair.sol new file mode 100644 index 0000000..92346ec --- /dev/null +++ b/src/interfaces/IUniswapV2Pair.sol @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.8.6; + +interface IUniswapV2Pair { + event Approval(address indexed owner, address indexed spender, uint value); + event Transfer(address indexed from, address indexed to, uint value); + + function name() external pure returns (string memory); + function symbol() external pure returns (string memory); + function decimals() external pure returns (uint8); + function totalSupply() external view returns (uint); + function balanceOf(address owner) external view returns (uint); + function allowance(address owner, address spender) external view returns (uint); + + function approve(address spender, uint value) external returns (bool); + function transfer(address to, uint value) external returns (bool); + function transferFrom(address from, address to, uint value) external returns (bool); + + function DOMAIN_SEPARATOR() external view returns (bytes32); + function PERMIT_TYPEHASH() external pure returns (bytes32); + function nonces(address owner) external view returns (uint); + + function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; + + event Mint(address indexed sender, uint amount0, uint amount1); + event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); + event Swap( + address indexed sender, + uint amount0In, + uint amount1In, + uint amount0Out, + uint amount1Out, + address indexed to + ); + event Sync(uint112 reserve0, uint112 reserve1); + + function MINIMUM_LIQUIDITY() external pure returns (uint); + function factory() external view returns (address); + function token0() external view returns (address); + function token1() external view returns (address); + function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); + function price0CumulativeLast() external view returns (uint); + function price1CumulativeLast() external view returns (uint); + function kLast() external view returns (uint); + + function mint(address to) external returns (uint liquidity); + function burn(address to) external returns (uint amount0, uint amount1); + function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; + function skim(address to) external; + function sync() external; + + function initialize(address, address) external; +} \ No newline at end of file diff --git a/src/interfaces/IUniswapV2Router.sol b/src/interfaces/IUniswapV2Router.sol new file mode 100644 index 0000000..283bef4 --- /dev/null +++ b/src/interfaces/IUniswapV2Router.sol @@ -0,0 +1,137 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.8.6; + +interface IUniswapV2Router01 { + function factory() external pure returns (address); + function WETH() external pure returns (address); + + function addLiquidity( + address tokenA, + address tokenB, + uint amountADesired, + uint amountBDesired, + uint amountAMin, + uint amountBMin, + address to, + uint deadline + ) external returns (uint amountA, uint amountB, uint liquidity); + function addLiquidityETH( + address token, + uint amountTokenDesired, + uint amountTokenMin, + uint amountETHMin, + address to, + uint deadline + ) external payable returns (uint amountToken, uint amountETH, uint liquidity); + function removeLiquidity( + address tokenA, + address tokenB, + uint liquidity, + uint amountAMin, + uint amountBMin, + address to, + uint deadline + ) external returns (uint amountA, uint amountB); + function removeLiquidityETH( + address token, + uint liquidity, + uint amountTokenMin, + uint amountETHMin, + address to, + uint deadline + ) external returns (uint amountToken, uint amountETH); + function removeLiquidityWithPermit( + address tokenA, + address tokenB, + uint liquidity, + uint amountAMin, + uint amountBMin, + address to, + uint deadline, + bool approveMax, uint8 v, bytes32 r, bytes32 s + ) external returns (uint amountA, uint amountB); + function removeLiquidityETHWithPermit( + address token, + uint liquidity, + uint amountTokenMin, + uint amountETHMin, + address to, + uint deadline, + bool approveMax, uint8 v, bytes32 r, bytes32 s + ) external returns (uint amountToken, uint amountETH); + function swapExactTokensForTokens( + uint amountIn, + uint amountOutMin, + address[] calldata path, + address to, + uint deadline + ) external returns (uint[] memory amounts); + function swapTokensForExactTokens( + uint amountOut, + uint amountInMax, + address[] calldata path, + address to, + uint deadline + ) external returns (uint[] memory amounts); + function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) + external + payable + returns (uint[] memory amounts); + function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) + external + returns (uint[] memory amounts); + function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) + external + returns (uint[] memory amounts); + function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) + external + payable + returns (uint[] memory amounts); + + function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); + function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); + function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); + function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); + function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); +} + +interface IUniswapV2Router02 is IUniswapV2Router01 { + function removeLiquidityETHSupportingFeeOnTransferTokens( + address token, + uint liquidity, + uint amountTokenMin, + uint amountETHMin, + address to, + uint deadline + ) external returns (uint amountETH); + function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( + address token, + uint liquidity, + uint amountTokenMin, + uint amountETHMin, + address to, + uint deadline, + bool approveMax, uint8 v, bytes32 r, bytes32 s + ) external returns (uint amountETH); + + function swapExactTokensForTokensSupportingFeeOnTransferTokens( + uint amountIn, + uint amountOutMin, + address[] calldata path, + address to, + uint deadline + ) external; + function swapExactETHForTokensSupportingFeeOnTransferTokens( + uint amountOutMin, + address[] calldata path, + address to, + uint deadline + ) external payable; + function swapExactTokensForETHSupportingFeeOnTransferTokens( + uint amountIn, + uint amountOutMin, + address[] calldata path, + address to, + uint deadline + ) external; +} \ No newline at end of file diff --git a/src/interfaces/Interfaces.sol b/src/interfaces/Interfaces.sol deleted file mode 100644 index c9baa2c..0000000 --- a/src/interfaces/Interfaces.sol +++ /dev/null @@ -1,368 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later -pragma solidity ^0.8.6; - -interface IDAO { - function updateTeamBalance(uint256 amount) external; - function updateMarketingBalance(uint256 amount) external; -} - -interface AggregatorInterface { - function latestAnswer() external view returns (int256); - function latestTimestamp() external view returns (uint256); - function latestRound() external view returns (uint256); - function getAnswer(uint256 roundId) external view returns (int256); - function getTimestamp(uint256 roundId) external view returns (uint256); - - event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt); - event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt); -} - -interface IERC20 { - /** - * @dev Returns the amount of tokens in existence. - */ - function totalSupply() external view returns (uint256); - - /** - * @dev Returns the amount of tokens owned by `account`. - */ - function balanceOf(address account) external view returns (uint256); - - /** - * @dev Moves `amount` tokens from the caller's account to `recipient`. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transfer(address recipient, uint256 amount) external returns (bool); - - /** - * @dev Returns the remaining number of tokens that `spender` will be - * allowed to spend on behalf of `owner` through {transferFrom}. This is - * zero by default. - * - * This value changes when {approve} or {transferFrom} are called. - */ - function allowance(address owner, address spender) external view returns (uint256); - - /** - * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * IMPORTANT: Beware that changing an allowance with this method brings the risk - * that someone may use both the old and the new allowance by unfortunate - * transaction ordering. One possible solution to mitigate this race - * condition is to first reduce the spender's allowance to 0 and set the - * desired value afterwards: - * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 - * - * Emits an {Approval} event. - */ - function approve(address spender, uint256 amount) external returns (bool); - - /** - * @dev Moves `amount` tokens from `sender` to `recipient` using the - * allowance mechanism. `amount` is then deducted from the caller's - * allowance. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); - - /** - * @dev Emitted when `value` tokens are moved from one account (`from`) to - * another (`to`). - * - * Note that `value` may be zero. - */ - event Transfer(address indexed from, address indexed to, uint256 value); - - /** - * @dev Emitted when the allowance of a `spender` for an `owner` is set by - * a call to {approve}. `value` is the new allowance. - */ - event Approval(address indexed owner, address indexed spender, uint256 value); -} - -abstract contract IERC20Extended is IERC20 { - function decimals() external view virtual returns (uint8); -} - -interface IWETH { - function deposit() external payable; - function withdraw(uint) external; - function balanceOf(address account) external view returns (uint256); - function transfer(address to, uint value) external returns (bool); -} - -interface IUniswapV2Factory { - event PairCreated(address indexed token0, address indexed token1, address pair, uint); - - function feeTo() external view returns (address); - function feeToSetter() external view returns (address); - - function getPair(address tokenA, address tokenB) external view returns (address pair); - function allPairs(uint) external view returns (address pair); - function allPairsLength() external view returns (uint); - - function createPair(address tokenA, address tokenB) external returns (address pair); - - function setFeeTo(address) external; - function setFeeToSetter(address) external; -} - -interface IUniswapV2Pair { - event Approval(address indexed owner, address indexed spender, uint value); - event Transfer(address indexed from, address indexed to, uint value); - - function name() external pure returns (string memory); - function symbol() external pure returns (string memory); - function decimals() external pure returns (uint8); - function totalSupply() external view returns (uint); - function balanceOf(address owner) external view returns (uint); - function allowance(address owner, address spender) external view returns (uint); - - function approve(address spender, uint value) external returns (bool); - function transfer(address to, uint value) external returns (bool); - function transferFrom(address from, address to, uint value) external returns (bool); - - function DOMAIN_SEPARATOR() external view returns (bytes32); - function PERMIT_TYPEHASH() external pure returns (bytes32); - function nonces(address owner) external view returns (uint); - - function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; - - event Mint(address indexed sender, uint amount0, uint amount1); - event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); - event Swap( - address indexed sender, - uint amount0In, - uint amount1In, - uint amount0Out, - uint amount1Out, - address indexed to - ); - event Sync(uint112 reserve0, uint112 reserve1); - - function MINIMUM_LIQUIDITY() external pure returns (uint); - function factory() external view returns (address); - function token0() external view returns (address); - function token1() external view returns (address); - function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); - function price0CumulativeLast() external view returns (uint); - function price1CumulativeLast() external view returns (uint); - function kLast() external view returns (uint); - - function mint(address to) external returns (uint liquidity); - function burn(address to) external returns (uint amount0, uint amount1); - function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; - function skim(address to) external; - function sync() external; - - function initialize(address, address) external; -} - -interface IUniswapV2Router01 { - function factory() external pure returns (address); - function WETH() external pure returns (address); - - function addLiquidity( - address tokenA, - address tokenB, - uint amountADesired, - uint amountBDesired, - uint amountAMin, - uint amountBMin, - address to, - uint deadline - ) external returns (uint amountA, uint amountB, uint liquidity); - function addLiquidityETH( - address token, - uint amountTokenDesired, - uint amountTokenMin, - uint amountETHMin, - address to, - uint deadline - ) external payable returns (uint amountToken, uint amountETH, uint liquidity); - function removeLiquidity( - address tokenA, - address tokenB, - uint liquidity, - uint amountAMin, - uint amountBMin, - address to, - uint deadline - ) external returns (uint amountA, uint amountB); - function removeLiquidityETH( - address token, - uint liquidity, - uint amountTokenMin, - uint amountETHMin, - address to, - uint deadline - ) external returns (uint amountToken, uint amountETH); - function removeLiquidityWithPermit( - address tokenA, - address tokenB, - uint liquidity, - uint amountAMin, - uint amountBMin, - address to, - uint deadline, - bool approveMax, uint8 v, bytes32 r, bytes32 s - ) external returns (uint amountA, uint amountB); - function removeLiquidityETHWithPermit( - address token, - uint liquidity, - uint amountTokenMin, - uint amountETHMin, - address to, - uint deadline, - bool approveMax, uint8 v, bytes32 r, bytes32 s - ) external returns (uint amountToken, uint amountETH); - function swapExactTokensForTokens( - uint amountIn, - uint amountOutMin, - address[] calldata path, - address to, - uint deadline - ) external returns (uint[] memory amounts); - function swapTokensForExactTokens( - uint amountOut, - uint amountInMax, - address[] calldata path, - address to, - uint deadline - ) external returns (uint[] memory amounts); - function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) - external - payable - returns (uint[] memory amounts); - function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) - external - returns (uint[] memory amounts); - function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) - external - returns (uint[] memory amounts); - function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) - external - payable - returns (uint[] memory amounts); - - function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); - function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); - function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); - function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); - function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); -} - -interface IUniswapV2Router02 is IUniswapV2Router01 { - function removeLiquidityETHSupportingFeeOnTransferTokens( - address token, - uint liquidity, - uint amountTokenMin, - uint amountETHMin, - address to, - uint deadline - ) external returns (uint amountETH); - function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( - address token, - uint liquidity, - uint amountTokenMin, - uint amountETHMin, - address to, - uint deadline, - bool approveMax, uint8 v, bytes32 r, bytes32 s - ) external returns (uint amountETH); - - function swapExactTokensForTokensSupportingFeeOnTransferTokens( - uint amountIn, - uint amountOutMin, - address[] calldata path, - address to, - uint deadline - ) external; - function swapExactETHForTokensSupportingFeeOnTransferTokens( - uint amountOutMin, - address[] calldata path, - address to, - uint deadline - ) external payable; - function swapExactTokensForETHSupportingFeeOnTransferTokens( - uint amountIn, - uint amountOutMin, - address[] calldata path, - address to, - uint deadline - ) external; -} - -//////////////////////////////// -////////// Dividend //////////// -//////////////////////////////// - -/* -@title Dividend-Paying Token Interface -@author Roger Wu (https://github.com/roger-wu) -@dev An interface for a dividend-paying token contract. -*/ -interface IDividendPayingToken { - /// @notice View the amount of dividend in wei that an address can withdraw. - /// @param _owner The address of a token holder. - /// @return The amount of dividend in wei that `_owner` can withdraw. - function dividendOf(address _owner) external view returns(uint256); - - /// @notice Distributes ether to token holders as dividends. - /// @dev SHOULD distribute the paid ether to token holders as dividends. - /// SHOULD NOT directly transfer ether to token holders in this function. - /// MUST emit a `DividendsDistributed` event when the amount of distributed ether is greater than 0. - function distributeDividends() external payable; - - /// @notice Withdraws the ether distributed to the sender. - /// @dev SHOULD transfer `dividendOf(msg.sender)` wei to `msg.sender`, and `dividendOf(msg.sender)` SHOULD be 0 after the transfer. - /// MUST emit a `DividendWithdrawn` event if the amount of ether transferred is greater than 0. - function withdrawDividend() external; - - /// @dev This event MUST emit when ether is distributed to token holders. - /// @param from The address which sends ether to this contract. - /// @param weiAmount The amount of distributed ether in wei. - event DividendsDistributed( - address indexed from, - uint256 weiAmount - ); - - /// @dev This event MUST emit when an address withdraws their dividend. - /// @param to The address which withdraws ether from this contract. - /// @param weiAmount The amount of withdrawn ether in wei. - event DividendWithdrawn( - address indexed to, - uint256 weiAmount - ); -} - -/* -@title Dividend-Paying Token Optional Interface -@author Roger Wu (https://github.com/roger-wu) -@dev OPTIONAL functions for a dividend-paying token contract. -*/ -interface IDividendPayingTokenOptional { - /// @notice View the amount of dividend in wei that an address can withdraw. - /// @param _owner The address of a token holder. - /// @return The amount of dividend in wei that `_owner` can withdraw. - function withdrawableDividendOf(address _owner) external view returns(uint256); - - /// @notice View the amount of dividend in wei that an address has withdrawn. - /// @param _owner The address of a token holder. - /// @return The amount of dividend in wei that `_owner` has withdrawn. - function withdrawnDividendOf(address _owner) external view returns(uint256); - - /// @notice View the amount of dividend in wei that an address has earned in total. - /// @dev accumulativeDividendOf(_owner) = withdrawableDividendOf(_owner) + withdrawnDividendOf(_owner) - /// @param _owner The address of a token holder. - /// @return The amount of dividend in wei that `_owner` has earned in total. - function accumulativeDividendOf(address _owner) external view returns(uint256); -} \ No newline at end of file diff --git a/src/interfaces/InterfacesAggregated.sol b/src/interfaces/InterfacesAggregated.sol new file mode 100644 index 0000000..16813b9 --- /dev/null +++ b/src/interfaces/InterfacesAggregated.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.8.6; + +interface IUniswapV2Factory { + function createPair(address tokenA, address tokenB) external returns (address pair); +} + +interface ITreasury { + function updateTaxesAccrued(uint amt) external; +} + +interface IVesting { + function getAllVestedTokens() external view returns (uint256 amount); +} \ No newline at end of file diff --git a/src/libraries/SafeMath.sol b/src/libraries/SafeMath.sol new file mode 100644 index 0000000..7f6c7d8 --- /dev/null +++ b/src/libraries/SafeMath.sol @@ -0,0 +1,215 @@ +// SPDX-License-Identifier: MIT +// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol) + +pragma solidity ^0.8.0; + +// CAUTION +// This version of SafeMath should only be used with Solidity 0.8 or later, +// because it relies on the compiler's built in overflow checks. + +/** + * @dev Wrappers over Solidity's arithmetic operations. + * + * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler + * now has built in overflow checking. + */ +library SafeMath { + /** + * @dev Returns the addition of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + uint256 c = a + b; + if (c < a) return (false, 0); + return (true, c); + } + } + + /** + * @dev Returns the subtraction of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b > a) return (false, 0); + return (true, a - b); + } + } + + /** + * @dev Returns the multiplication of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) return (true, 0); + uint256 c = a * b; + if (c / a != b) return (false, 0); + return (true, c); + } + } + + /** + * @dev Returns the division of two unsigned integers, with a division by zero flag. + * + * _Available since v3.4._ + */ + function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b == 0) return (false, 0); + return (true, a / b); + } + } + + /** + * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. + * + * _Available since v3.4._ + */ + function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { + unchecked { + if (b == 0) return (false, 0); + return (true, a % b); + } + } + + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint256 a, uint256 b) internal pure returns (uint256) { + return a + b; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + return a - b; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint256 a, uint256 b) internal pure returns (uint256) { + return a * b; + } + + /** + * @dev Returns the integer division of two unsigned integers, reverting on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint256 a, uint256 b) internal pure returns (uint256) { + return a / b; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * reverting when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint256 a, uint256 b) internal pure returns (uint256) { + return a % b; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {trySub}. + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + unchecked { + require(b <= a, errorMessage); + return a - b; + } + } + + /** + * @dev Returns the integer division of two unsigned integers, reverting with custom message on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + unchecked { + require(b > 0, errorMessage); + return a / b; + } + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * reverting with custom message when dividing by zero. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryMod}. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + unchecked { + require(b > 0, errorMessage); + return a % b; + } + } +} \ No newline at end of file diff --git a/src/users/Actor.sol b/src/users/Actor.sol index 18c67cf..c44c2e7 100644 --- a/src/users/Actor.sol +++ b/src/users/Actor.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.6; pragma experimental ABIEncoderV2; -import { IERC20 } from "../interfaces/Interfaces.sol"; +import { IERC20 } from "../interfaces/IERC20.sol"; contract Actor { diff --git a/test/MainDeployment.t.sol b/test/MainDeployment.t.sol new file mode 100644 index 0000000..3c15f98 --- /dev/null +++ b/test/MainDeployment.t.sol @@ -0,0 +1,336 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import "../lib/forge-std/src/Test.sol"; +import "./Utility.sol"; + +// Import sol files. +import { TaxToken } from "../src/TaxToken.sol"; +import { Treasury } from "../src/Treasury.sol"; +import { Vesting } from "../src/Vesting.sol"; + +contract MainDeploymentTest is Utility, Test { + Vesting vesting; + TaxToken proveToken; + Treasury treasury; + + function setUp() public { + createActors(); + setUpTokens(); + + /// @dev Don't need to set up token with treasury because vesting contract should be whitelisted. + + // Deploy the TaxToken. + proveToken = new TaxToken( + 1_000_000_000, // Initial liquidity (220M) + 'Prove Zero', // Name of token + 'PROVE', // Symbol of token + 18, // Precision of decimals + 1_000_000_000, // Max wallet (220M) + 1_000_000_000 // Max transaction (220M) + ); + + // IDEALLY add investors here. + + // Finally, deploy Vesting contract. + vesting = new Vesting( + address(proveToken), + address(dev) + ); + + // Set vesting address on token. + proveToken.setVesting(address(vesting)); + } + + // Initial State Test. + function test_mainDeploymentTest_init_state() public { + assertEq(proveToken.totalSupply(), 1_000_000_000 ether); + assertEq(proveToken.balanceOf(address(this)), 1_000_000_000 ether); + assertEq(proveToken.balanceOf(address(vesting)), 0); + assertEq(proveToken.owner(), address(this)); + assertEq(proveToken.vesting(), address(vesting)); + assertEq(proveToken.whitelist(proveToken.vesting()), true); + assertEq(proveToken.whitelist(address(proveToken)), true); + assertEq(proveToken.whitelist(proveToken.owner()), true); + + assertEq(vesting.proveToken(), address(proveToken)); + assertEq(vesting.vestingStartUnix(), 0); + assertEq(vesting.vestingEnabled(), false); + assertEq(vesting.owner(), address(dev)); + } + + // ~ claim() tests ~ + + /// @dev Verifies claim() restrictions + function test_mainDeploymentTest_claim_restrictions() public { + uint _amount = 5_000_000 ether; + + // Transfer PROVE tokens to vesting contract + proveToken.transfer(address(vesting), _amount); + + // Jon is trying to claim + vm.startPrank(address(jon)); + + // Should not work if caller isn't investor + vm.expectRevert("Vesting.sol::onlyInvestor() msg.sender must be an investor"); + vesting.claim(); + + // Add jon as investor + assert(dev.try_addInvestor(address(vesting), address(jon), 1_000_000 ether)); + + // Should not work if vesting isn't enabled + vm.expectRevert("Vesting.sol::claim() vesting is not enabled"); + vesting.claim(); + + // Enable vesting + assert(dev.try_enableVesting(address(vesting))); + + // Jon can claim his tokens + vesting.claim(); + + skip(52 weeks); + + // Jon can claim more tokens + vesting.claim(); + + vm.expectRevert("Vesting.sol::claim() investor has no tokens to claim"); + vesting.claim(); + + vm.stopPrank(); + + } + + /// @dev Verifies claim() state changes + function test_mainDeploymentTest_claim() public { + uint _amount = 1_000_000 ether; + + // Transfer PROVE tokens to vesting contract + proveToken.transfer(address(vesting), _amount); + + // Jon is trying to claim + vm.startPrank(address(jon)); + + // Add jon as investor + assert(dev.try_addInvestor(address(vesting), address(jon), _amount)); + + // Enable vesting + assert(dev.try_enableVesting(address(vesting))); + + // Pre-State check + assertEq(proveToken.balanceOf(address(jon)), 0); + + // Jon is going to call claim + assert(jon.try_claim(address(vesting))); + + // Post-State check + assertEq(proveToken.balanceOf(address(jon)), _amount * 12 / 100); + + // Skip 4 weeks + skip(4 weeks); + + // Jon is going to call claim + assert(jon.try_claim(address(vesting))); + + // Post-State check + assertEq(proveToken.balanceOf(address(jon)), _amount * 20 / 100); + + // Skip 4 weeks + skip(4 weeks); + + // Jon is going to call claim + assert(jon.try_claim(address(vesting))); + + // Post-State check + assertEq(proveToken.balanceOf(address(jon)), _amount * 28 / 100); + + // Skip 12 weeks + skip(12 weeks); + + // Jon is going to call claim + assert(jon.try_claim(address(vesting))); + + // Post-State check + assertEq(proveToken.balanceOf(address(jon)), _amount * 52 / 100); + + // Skip 24 weeks + skip(24 weeks); + + // Jon is going to call claim + assert(jon.try_claim(address(vesting))); + + // Post-State check + assertEq(proveToken.balanceOf(address(jon)), _amount); + + vm.stopPrank(); + } + + /// @dev Verifies claim() edge cases + function test_mainDeploymentTest_claim_edge_cases() public { + uint _amount = 5_000_000 ether; + + proveToken.transfer(address(vesting), _amount); + + //Enable vesting + assert(dev.try_enableVesting(address(vesting))); + + // Adding three investors for three edge cases + // Add jon as investor + assert(dev.try_addInvestor(address(vesting), address(jon), 1_000_000 ether)); + + // Add joe as investor + assert(dev.try_addInvestor(address(vesting), address(joe), 1_000_000 ether)); + + // Add dev as investor + assert(dev.try_addInvestor(address(vesting), address(dev), 1_000_000 ether)); + + // Jon is trying to claim after less than one month. + skip(2 weeks); + assert(jon.try_claim(address(vesting))); + + // Jon should have only gotten 12% of his tokensToVest + assertEq(proveToken.balanceOf(address(jon)), (1_000_000 ether * 12 / 100) ); + + // Skip another 22 weeks to 6 months total + skip(22 weeks); + // Joe is trying to claim some in the middle + assert(joe.try_claim(address(vesting))); + + // Joe should have only gotten 60% of his tokensToVest + assertEq(proveToken.balanceOf(address(joe)), (1_000_000 ether * 60 / 100)); + + // Skip another 20 weeks to 11 months total + skip(20 weeks); + // Joe is going to claim again and it should be the rest of his tokens + assert(joe.try_claim(address(vesting))); + + // Joe should have 100% of his tokensToVest + assertEq(proveToken.balanceOf(address(joe)), (1_000_000 ether)); + + // Skip a year forward + skip(52 weeks); + // Dev is going to claim far after the end of the vesting schedule + assert(dev.try_claim(address(vesting))); + + // Dev should have 100% of their tokens but no more + assertEq(proveToken.balanceOf(address(dev)), (1_000_000 ether)); + + } + + /// @dev Verifies claim() state changes using fuzzing + function test_mainDeploymentTest_claim_fuzzing1(uint256 _amount) public { + _amount = bound(_amount, 100_000 ether, 100_000_000 ether); + + // First fill up the contract with PROVE tokens + proveToken.transfer(address(vesting), _amount); + + //Jon is trying to claim + vm.startPrank(address(jon)); + + //Add jon as investor + assert(dev.try_addInvestor(address(vesting), address(jon), _amount)); + + //Enable vesting + assert(dev.try_enableVesting(address(vesting))); + + // Pre-State check + assertEq(proveToken.balanceOf(address(jon)), 0); + + // Jon is going to call claim + assert(jon.try_claim(address(vesting))); + + // Post-State check + withinDiff(proveToken.balanceOf(address(jon)), _amount * 12 / 100, 1 ether); + + // Skip 4 weeks + skip(4 weeks); + + // Jon is going to call claim + assert(jon.try_claim(address(vesting))); + + // Post-State check + withinDiff(proveToken.balanceOf(address(jon)), _amount * 20 / 100, 1 ether); + + // Skip 4 weeks + skip(4 weeks); + + // Jon is going to call claim + assert(jon.try_claim(address(vesting))); + + // Post-State check + withinDiff(proveToken.balanceOf(address(jon)), _amount * 28 / 100, 1 ether); + + // Skip 12 weeks + skip(12 weeks); + + // Jon is going to call claim + assert(jon.try_claim(address(vesting))); + + // Post-State check + withinDiff(proveToken.balanceOf(address(jon)), _amount * 52 / 100, 1 ether); + + // Skip 24 weeks + skip(24 weeks); + + // Jon is going to call claim + assert(jon.try_claim(address(vesting))); + + // Post-State check + assertEq(proveToken.balanceOf(address(jon)), _amount); + + vm.stopPrank(); + } + + /// @dev Verifies claim() edge cases using fuzzing + function test_mainDeploymentTest_claim_fuzzing2(uint256 _amount) public { + _amount = bound(_amount, 100_000 ether, 100_000_000 ether); + + // First fill up the contract with PROVE tokens + proveToken.transfer(address(vesting), _amount*3); + + //Enable vesting + assert(dev.try_enableVesting(address(vesting))); + + // Adding three investors for three edge cases + // Add jon as investor + assert(dev.try_addInvestor(address(vesting), address(jon), _amount)); + + // Add joe as investor + assert(dev.try_addInvestor(address(vesting), address(joe), _amount)); + + // Add dev as investor + assert(dev.try_addInvestor(address(vesting), address(dev), _amount)); + + // Jon is trying to claim after less than one month. + skip(2 weeks); + assert(jon.try_claim(address(vesting))); + + // Jon should have only gotten 12% of his tokensToVest + withinDiff(proveToken.balanceOf(address(jon)), (_amount * 12 / 100), 1 ether); + + // Skip another 22 weeks to 6 months total + skip(22 weeks); + // Joe is trying to claim some in the middle + assert(joe.try_claim(address(vesting))); + + // Joe should have only gotten 60% of his tokensToVest + withinDiff(proveToken.balanceOf(address(joe)), (_amount * 60 / 100), 1 ether); + + // Skip another 20 weeks to 11 months total + skip(20 weeks); + // Joe is going to claim again and it should be the rest of his tokens + assert(joe.try_claim(address(vesting))); + + // Joe should have 100% of his tokensToVest + assertEq(proveToken.balanceOf(address(joe)), _amount); + + // Skip a year forward + skip(52 weeks); + // Dev is going to claim far after the end of the vesting schedule + assert(dev.try_claim(address(vesting))); + + // Dev should have 100% of their tokens but no more + assertEq(proveToken.balanceOf(address(dev)), _amount); + + } + +} diff --git a/test/Utility.sol b/test/Utility.sol index f2395db..e74f932 100644 --- a/test/Utility.sol +++ b/test/Utility.sol @@ -35,6 +35,7 @@ contract Utility is DSTest { address constant DAI = 0x6B175474E89094C44Da98b954EedeAC495271d0F; address constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; address constant WBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599; + address constant FRAX = 0x853d955aCEf822Db058eb8505911ED77F175b99e; IERC20 constant usdc = IERC20(USDC); IERC20 constant dai = IERC20(DAI); diff --git a/test/Vesting.t.sol b/test/Vesting.t.sol index 750e239..256ef9e 100644 --- a/test/Vesting.t.sol +++ b/test/Vesting.t.sol @@ -3,7 +3,9 @@ pragma solidity ^0.8.13; import "../lib/forge-std/src/Test.sol"; import "./Utility.sol"; -import { Vesting } from "../src/Vesting.sol"; + +// Import sol files. +import { Vesting } from "../src/Vesting.sol"; contract VestingTest is Utility, Test { Vesting vesting; @@ -14,16 +16,14 @@ contract VestingTest is Utility, Test { // deploy Vesting contract vesting = new Vesting( - //use compound for now just so we can actually deal the tokens out in test cases without having an EVM revert - //was "222" before - address(0xc00e94Cb662C3520282E6f5717214004A7f26888), + FRAX, address(dev) ); } // Initial State Test. function test_vesting_init_state() public { - assertEq(vesting.proveToken(), address(0xc00e94Cb662C3520282E6f5717214004A7f26888)); + assertEq(vesting.proveToken(), FRAX); assertEq(vesting.vestingStartUnix(), 0); assertEq(vesting.vestingEnabled(), false); } @@ -137,6 +137,7 @@ contract VestingTest is Utility, Test { assertEq(vesting.investors(address(joe)), false); Vesting.Investor[] memory tempArr = vesting.getInvestorLibrary(); assertEq(tempArr.length, 0); + assertEq(vesting.getAllVestedTokens(), 0); // Call addInvestor(). assert(dev.try_addInvestor(address(vesting), address(joe), 10 ether)); @@ -148,6 +149,8 @@ contract VestingTest is Utility, Test { assertEq(tempArr[0].account, address(joe)); assertEq(tempArr[0].tokensToVest, 10 ether); assertEq(tempArr[0].tokensClaimed, 0); + + assertEq(vesting.getAllVestedTokens(), 10 ether); } // ~ removeInvestor() tests ~ @@ -298,7 +301,7 @@ contract VestingTest is Utility, Test { /// @dev Verifies claim() restrictions function test_vesting_claim_restrictions() public { // *First fill up the contract with PROVE tokens - deal(0xc00e94Cb662C3520282E6f5717214004A7f26888, address(vesting), 5_000_000 ether); + deal(vesting.proveToken(), address(vesting), 5_000_000 ether); // Jon is trying to claim vm.startPrank(address(jon)); @@ -337,7 +340,7 @@ contract VestingTest is Utility, Test { uint _amount = 1_000_000 ether; // *First fill up the contract with PROVE tokens - deal(0xc00e94Cb662C3520282E6f5717214004A7f26888, address(vesting), _amount); + deal(vesting.proveToken(), address(vesting), _amount); //Jon is trying to claim vm.startPrank(address(jon)); @@ -399,7 +402,7 @@ contract VestingTest is Utility, Test { /// @dev Verifies claim() edge cases function test_vesting_claim_edge_cases() public { // *First fill up the contract with PROVE tokens - deal(0xc00e94Cb662C3520282E6f5717214004A7f26888, address(vesting), 5_000_000 ether); + deal(vesting.proveToken(), address(vesting), 5_000_000 ether); //Enable vesting assert(dev.try_enableVesting(address(vesting))); @@ -452,7 +455,7 @@ contract VestingTest is Utility, Test { _amount = bound(_amount, 100_000 ether, 100_000_000 ether); // *First fill up the contract with PROVE tokens - deal(0xc00e94Cb662C3520282E6f5717214004A7f26888, address(vesting), _amount); + deal(vesting.proveToken(), address(vesting), _amount); //Jon is trying to claim vm.startPrank(address(jon)); @@ -516,7 +519,7 @@ contract VestingTest is Utility, Test { _amount = bound(_amount, 100_000 ether, 100_000_000 ether); // *First fill up the contract with PROVE tokens - deal(0xc00e94Cb662C3520282E6f5717214004A7f26888, address(vesting), _amount * 3); + deal(vesting.proveToken(), address(vesting), _amount * 3); //Enable vesting assert(dev.try_enableVesting(address(vesting)));